Kaynağa Gözat

Merge branch 'draft' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer

# Conflicts:
#	WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java
RaoMeng 9 yıl önce
ebeveyn
işleme
eaad86f7c4
46 değiştirilmiş dosya ile 1355 ekleme ve 316 silme
  1. 1 1
      WeiChat/build.gradle
  2. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java
  3. 21 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/FriendSortAdapter.java
  4. 9 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  5. 18 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BasicInfoActivity.java
  6. 27 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/AddTaskActivity.java
  7. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ExtraLeaveActivity.java
  8. 72 21
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/MyFriendActivity.java
  9. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/NoticesActivity.java
  10. 6 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/WebViewCommActivity.java
  11. 4 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessLessActivity.java
  12. 54 28
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddLogActivity.java
  13. 10 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  14. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java
  15. 80 27
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SaveMeetActivity.java
  16. 14 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectActivity.java
  17. 14 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java
  18. 4 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/OAListAdapter.java
  19. 8 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java
  20. 534 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/ContactFragment.java
  21. 178 62
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java
  22. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java
  23. 78 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/SelectPicPopupWindow.java
  24. 4 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java
  25. 4 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/RoomInfoActivity.java
  26. 65 81
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ToastUtil.java
  27. 1 0
      WeiChat/src/main/res/layout/act_list_dbfind_employee.xml
  28. 1 0
      WeiChat/src/main/res/layout/act_news_list.xml
  29. 3 4
      WeiChat/src/main/res/layout/act_notice_list.xml
  30. 2 2
      WeiChat/src/main/res/layout/act_task_add.xml
  31. 1 0
      WeiChat/src/main/res/layout/activity_add_meet_task.xml
  32. 2 3
      WeiChat/src/main/res/layout/activity_basic_info.xml
  33. 1 0
      WeiChat/src/main/res/layout/activity_business_circle.xml
  34. 1 0
      WeiChat/src/main/res/layout/activity_map_location.xml
  35. 3 2
      WeiChat/src/main/res/layout/activity_select.xml
  36. 46 0
      WeiChat/src/main/res/layout/alert_dialog.xml
  37. 43 0
      WeiChat/src/main/res/layout/fragment_contact.xml
  38. 5 2
      WeiChat/src/main/res/layout/fragment_message.xml
  39. 13 12
      WeiChat/src/main/res/layout/fragment_works.xml
  40. 2 5
      WeiChat/src/main/res/layout/header_fragment_contact.xml
  41. 1 1
      WeiChat/src/main/res/layout/item_activity_worklogs.xml
  42. 0 2
      WeiChat/src/main/res/layout/item_card_notice.xml
  43. 1 0
      WeiChat/src/main/res/layout/schedule_listview.xml
  44. 1 0
      WeiChat/src/main/res/layout/task_listview.xml
  45. 5 0
      WeiChat/src/main/res/values/strings.xml
  46. 8 0
      WeiChat/src/main/res/values/styles.xml

+ 1 - 1
WeiChat/build.gradle

@@ -13,7 +13,7 @@ android {
     }
     signingConfigs {
         config {
-            storeFile file('E:/CompanyProject/applicationsignname[20150409]')
+            storeFile file('D:/config/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java

@@ -10,6 +10,7 @@ import com.baidu.location.LocationClient;
 import com.baidu.location.LocationClientOption;
 import com.baidu.location.Poi;
 import com.xzjmyk.pm.activity.sp.LocationSp;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 
 import java.util.List;
 
@@ -141,7 +142,7 @@ public class BdLocationHelper {
             // }
             mContext.sendBroadcast(new Intent(ACTION_LOCATION_UPDATE));// 发送广播
             if (listener != null) {
-                //ToastUtil.showToast(mContext, "定位码:" + resultCode);
+                ToastUtil.showToast(mContext, "定位码:" + resultCode);
                 listener.result(true);
             }
         }

+ 21 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/FriendSortAdapter.java

@@ -4,6 +4,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.text.TextUtils;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -18,8 +19,10 @@ import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.ui.erp.view.SelectPicPopupWindow;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -33,14 +36,15 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
     private boolean isRefeshed;
     private Map<Integer, String> isLog;
 
+
     public FriendSortAdapter(Context context, List<BaseSortModel<Friend>> sortFriends) {
         mContext = context;
-        mSortFriends = sortFriends;
+        mSortFriends = (sortFriends == null ? new ArrayList<BaseSortModel<Friend>>() : sortFriends);
         isLog = new HashMap<>();
     }
 
-    public void setData(List<BaseSortModel<Friend>> mSortFriends) {
-        this.mSortFriends = mSortFriends;
+    public void setData(List<BaseSortModel<Friend>> sortFriends) {
+        this.mSortFriends = (sortFriends == null ? new ArrayList<BaseSortModel<Friend>>() : sortFriends);
         notifyDataSetChanged();
     }
 
@@ -87,8 +91,6 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
         } else {
             holder = (ViewHolder) convertView.getTag();
         }
-
-
         // 如果当前位置等于该分类首字母的Char的位置 ,则认为是第一次出现
         if (position == getPositionForSection(section)) {
             holder.tag_tv.setVisibility(View.VISIBLE);
@@ -140,6 +142,7 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
         /*个性签名*/
         holder.sub_tv.setText((StringUtils.isEmpty(friend.getDepart()) ? "" : (friend.getDepart() + ">"))
                 + " " + (StringUtils.isEmpty(friend.getPosition()) ? "" : friend.getPosition()));
+        final View finalConvertView = convertView;
         holder.phone_img.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -148,6 +151,7 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
                     Pattern regex = Pattern.compile(check);
                     Matcher matcher = regex.matcher(phone.toString());
                     if (matcher.matches()) {
+//                        selectByPhone(phone, finalConvertView);
                         phoneAction(phone);
                     } else {
                         Crouton.makeText(mContext, R.string.not_format_phone);
@@ -160,6 +164,18 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
         return convertView;
     }
 
+    private void selectByPhone(String phone, View v) {
+        SelectPicPopupWindow menuWindow = new SelectPicPopupWindow(mContext, phone, new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+
+            }
+        });
+
+        //显示窗口
+        menuWindow.showAtLocation(v, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); //设置layout在PopupWindow中显示的位置
+    }
+
     private void phoneAction(final String phone) {
         MaterialDialog dialog = new MaterialDialog.Builder(mContext).title("确认是否拨打电话").content("手机号码:" + phone)
                 .positiveText("拨打").negativeText("取消").autoDismiss(false).callback(new MaterialDialog.ButtonCallback() {

+ 9 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -41,7 +41,7 @@ import com.xzjmyk.pm.activity.helper.LoginHelper;
 import com.xzjmyk.pm.activity.ui.account.LoginActivity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.circle.BusinessCircleFragment;
-import com.xzjmyk.pm.activity.ui.erp.fragment.LinksManFragment;
+import com.xzjmyk.pm.activity.ui.erp.fragment.ContactFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.WorksFragment;
 import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.groupchat.GroupChatFragment;
@@ -113,7 +113,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
     private WorksFragment mWorksFragment;//工作
     private GroupChatFragment mGroupChatFragment;//群聊
     private MeFragment mMeFragment;//我
-    private LinksManFragment mBusinessCircleFragment;
+    private ContactFragment mBusinessCircleFragment;
     public static String BAIDU_PUSH = "BAIDUPUSH";
     private boolean mXmppBind;
     private CoreService mCoreService;
@@ -156,9 +156,10 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         if (UPDATA_LIST == requestCode) {
-            if (mBusinessCircleFragment != null) {
-                mBusinessCircleFragment.onResult();
-            }
+            //TODO 更新
+//            if (mBusinessCircleFragment != null) {
+//                mBusinessCircleFragment.onResult();
+//            }
         } else if (requestCode == 0x11) {
             if (resultCode == 0x12) {
                 mTabRadioGroup.check(R.id.main_tab_five);
@@ -192,7 +193,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                 updateMessageTitle();
             } else if (checkedId == R.id.main_tab_two) {
                 if (mBusinessCircleFragment == null) {
-                    mBusinessCircleFragment = new LinksManFragment();
+                    mBusinessCircleFragment = new ContactFragment();
                 }
                 changeFragment(mBusinessCircleFragment, TAG_BusinessCircle);//发现
                 getSupportActionBar().setTitle("通讯录");
@@ -574,7 +575,6 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
 
     @Override
     public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
-
         super.onSaveInstanceState(outState, outPersistentState);
         saveOfflineTime();
     }
@@ -586,7 +586,8 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         mWorksFragment = (WorksFragment) getSupportFragmentManager().findFragmentByTag(TAG_NEARBY);
         mGroupChatFragment = (GroupChatFragment) getSupportFragmentManager().findFragmentByTag(TAG_GROUP_CHAT);
         mMeFragment = (MeFragment) getSupportFragmentManager().findFragmentByTag(TAG_ME);
-        mBusinessCircleFragment = (LinksManFragment) getSupportFragmentManager().findFragmentByTag(TAG_BusinessCircle);
+
+        mBusinessCircleFragment = (ContactFragment) getSupportFragmentManager().findFragmentByTag(TAG_BusinessCircle);
     }
 
     /**

+ 18 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BasicInfoActivity.java

@@ -117,6 +117,7 @@ public class BasicInfoActivity extends BaseActivity implements NewFriendListener
     };
     private String userId;
     private String userName;
+    private String phone;
 
     @TargetApi(Build.VERSION_CODES.HONEYCOMB)
     @SuppressLint("NewApi")
@@ -127,6 +128,7 @@ public class BasicInfoActivity extends BaseActivity implements NewFriendListener
         if (getIntent() != null) {
             userId = getIntent().getStringExtra(AppConstant.EXTRA_USER_ID);
             userName = getIntent().getStringExtra(AppConstant.EXTRA_NICK_NAME);
+            phone = getIntent().getStringExtra("phone");
         }
         mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
         setContentView(R.layout.activity_basic_info);
@@ -150,6 +152,21 @@ public class BasicInfoActivity extends BaseActivity implements NewFriendListener
         mBind = bindService(CoreService.getIntent(), mServiceConnection, BIND_AUTO_CREATE);
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        String phonec = phone_tv.getText().toString();
+        String do_next = do_next_tv.getText().toString();
+        if (StringUtils.isEmpty(phonec) && !StringUtils.isEmpty(phone)) {
+            //TODO phone_tv
+            phone_tv.setText(phone);
+        }
+        if (StringUtils.isEmpty(do_next)) {
+            //TODO do_next
+            do_next_tv.setText("加为好友");
+        }
+    }
+
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
         if (showMenu && mFriend != null) {
@@ -250,7 +267,7 @@ public class BasicInfoActivity extends BaseActivity implements NewFriendListener
         mDataLoadView.setVisibility(View.GONE);
         String code = null;
         if (getIntent() != null) {
-            code = getIntent().getStringExtra(AppConstant.EXTRA_NICK_CODE);
+            phone=code = getIntent().getStringExtra(AppConstant.EXTRA_NICK_CODE);
         }
         name_tv.setText(userName);
         phone_tv.setText(code);
@@ -398,7 +415,6 @@ public class BasicInfoActivity extends BaseActivity implements NewFriendListener
     }
 
     private void initView() {
-
         phone_img.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {

+ 27 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/AddTaskActivity.java

@@ -53,12 +53,14 @@ import com.xzjmyk.pm.activity.ui.erp.view.SwitchView;
 import com.xzjmyk.pm.activity.ui.erp.view.calendar.cons.DPMode;
 import com.xzjmyk.pm.activity.ui.erp.view.calendar.views.TaskDatePicker;
 import com.xzjmyk.pm.activity.view.TagGroup;
+import com.xzjmyk.pm.activity.view.wheel.DateTimePicker;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -78,7 +80,9 @@ public class AddTaskActivity extends BaseActivity implements OnClickListener {
     @ViewInject(R.id.cb_task_reply)
     private SwitchView cb_task_reply;
     @ViewInject(R.id.et_task_startime)
-    private EditText et_task_startime;
+    private TextView et_task_startime;
+    @ViewInject(R.id.task_startime_rl)
+    private RelativeLayout task_startime_rl;
     @ViewInject(R.id.et_task_name)
     private EditText et_task_name;
     @ViewInject(R.id.bt_task_add)
@@ -241,7 +245,7 @@ public class AddTaskActivity extends BaseActivity implements OnClickListener {
         getSupportActionBar().setTitle("添加任务");
         String people = getIntent().getStringExtra("people") == null ? "未填写" : getIntent().getStringExtra("people");
         bt_task_add.setOnClickListener(this);
-        et_task_startime.setOnTouchListener(new OnTouchListener() {
+        task_startime_rl.setOnTouchListener(new OnTouchListener() {
             @Override
             public boolean onTouch(View v, MotionEvent event) {
                 if (event.getAction() == event.ACTION_DOWN)
@@ -258,7 +262,8 @@ public class AddTaskActivity extends BaseActivity implements OnClickListener {
         iv_delete_voice.setOnClickListener(this);
     }
 
-    private void showDateDialog() {
+    /*保留事件选择器   点击版*/
+    private void showDateDialog(int i) {
         final AlertDialog dialog = new AlertDialog.Builder(this).create();
         dialog.show();
         TaskDatePicker picker = new TaskDatePicker(this);
@@ -286,6 +291,25 @@ public class AddTaskActivity extends BaseActivity implements OnClickListener {
         dialog.getWindow().setGravity(Gravity.CENTER);
     }
 
+    private void showDateDialog() {
+        DateTimePicker picker = new DateTimePicker(this, DateTimePicker.HOUR_OF_DAY);
+        picker.setRange(2000, 2030);
+        picker.setSelectedItem(Calendar.getInstance().get(Calendar.YEAR),
+                Calendar.getInstance().get(Calendar.MONTH) + 1,
+                Calendar.getInstance().get(Calendar.DAY_OF_MONTH),
+                Calendar.getInstance().get(Calendar.HOUR_OF_DAY),
+                Calendar.getInstance().get(Calendar.MINUTE));
+        picker.setOnDateTimePickListener(new DateTimePicker.OnYearMonthDayTimePickListener() {
+            @Override
+            public void onDateTimePicked(String year, String month, String day, String hour, String minute) {
+                String time = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":00";
+                et_task_startime.setText(time);
+            }
+        });
+        picker.show();
+    }
+
+
     @Override
     public void onClick(View v) {
         switch (v.getId()) {

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

@@ -566,7 +566,7 @@ public class ExtraLeaveActivity extends BaseActivity implements OnClickListener
 			entity.setSa_id(va_id);
 		}
 		entity.setSa_code(va_code);
-		entity.setSa_appmancode(va_code);
+		entity.setSa_appmancode(CommonUtil.getSharedPreferences(mContext,"erp_username"));
 		entity.setSa_appdate(et_extra_date.getText().toString());
 		entity.setSa_enddate(et_extra_time.getText().toString());
 		entity.setSa_appman(et_extra_encode.getText().toString());

+ 72 - 21
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/MyFriendActivity.java

@@ -10,9 +10,12 @@ import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
+import android.text.Editable;
 import android.text.InputFilter;
 import android.text.TextUtils;
+import android.text.TextWatcher;
 import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
@@ -25,39 +28,40 @@ import com.android.volley.VolleyError;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.xzjmyk.pm.activity.AppConstant;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.FriendSortAdapter;
+import com.xzjmyk.pm.activity.bean.AttentionUser;
+import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.bean.message.NewFriendMessage;
+import com.xzjmyk.pm.activity.bean.message.XmppMessage;
+import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.db.dao.OnCompleteListener;
+import com.xzjmyk.pm.activity.helper.FriendHelper;
 import com.xzjmyk.pm.activity.sortlist.BaseComparator;
 import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
 import com.xzjmyk.pm.activity.sortlist.PingYinUtil;
+import com.xzjmyk.pm.activity.sortlist.SideBar;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.circle.BasicInfoActivity;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
-import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
-import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
-import com.xzjmyk.pm.activity.util.StringUtils;
-import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.volley.ArrayResult;
-import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
-import com.xzjmyk.pm.activity.xmpp.CoreService;
-import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.AttentionUser;
-import com.xzjmyk.pm.activity.bean.Friend;
-import com.xzjmyk.pm.activity.bean.message.XmppMessage;
-import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
-import com.xzjmyk.pm.activity.helper.FriendHelper;
-import com.xzjmyk.pm.activity.sortlist.SideBar;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.message.ChatActivity;
 import com.xzjmyk.pm.activity.ui.message.NewFriendActivity;
+import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
+import com.xzjmyk.pm.activity.util.StringUtils;
+import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
+import com.xzjmyk.pm.activity.view.ClearEditText;
+import com.xzjmyk.pm.activity.volley.ArrayResult;
 import com.xzjmyk.pm.activity.volley.ObjectResult;
 import com.xzjmyk.pm.activity.volley.Result;
+import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
+import com.xzjmyk.pm.activity.xmpp.CoreService;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -73,6 +77,7 @@ public class MyFriendActivity extends BaseActivity {
     private SideBar mSideBar;
     private ProgressDialog mProgressDialog;
     private List<BaseSortModel<Friend>> mSortFriends;
+    private List<BaseSortModel<Friend>> allFriends;
     private BaseComparator<Friend> mBaseComparator;
     private FriendSortAdapter mAdapter;
     private String mLoginUserId;
@@ -80,6 +85,7 @@ public class MyFriendActivity extends BaseActivity {
     private boolean mNeedUpdate = true;
     private DBManager manager;
     private boolean isPeculiar = false;
+    private ClearEditText search_edit;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -90,7 +96,8 @@ public class MyFriendActivity extends BaseActivity {
             getSupportActionBar().setTitle("常用联系人");
         else
             getSupportActionBar().setTitle("我的好友");
-        mSortFriends = new ArrayList<BaseSortModel<Friend>>();
+        mSortFriends = new ArrayList<>();
+        allFriends = new ArrayList<>();
         mBaseComparator = new BaseComparator<Friend>();
         mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
         initView();
@@ -198,7 +205,7 @@ public class MyFriendActivity extends BaseActivity {
                 //linear_top_menu.setVisibility(View.VISIBLE);
             }
         });
-
+        setHeaderView();
         mAdapter = new FriendSortAdapter(MyFriendActivity.this, mSortFriends);
         mPullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
         mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
@@ -222,16 +229,17 @@ public class MyFriendActivity extends BaseActivity {
                 } catch (ArrayIndexOutOfBoundsException e) {
                     return;
                 }
-
                 Intent intent = null;
                 if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
                     intent = new Intent(MyFriendActivity.this, NewFriendActivity.class);
                 } else if (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE)) {// 新朋友消息
                     intent = new Intent(MyFriendActivity.this, ChatActivity.class);
                     intent.putExtra(ChatActivity.FRIEND, friend);
+
                 } else {
                     intent = new Intent(MyFriendActivity.this, BasicInfoActivity.class);
                     intent.putExtra(AppConstant.EXTRA_USER_ID, friend.getUserId());
+                    intent.putExtra(AppConstant.EXTRA_NICK_CODE, friend.getPhone());
                     intent.putExtra("friend", friend);
                 }
                 startActivity(intent);
@@ -256,6 +264,46 @@ public class MyFriendActivity extends BaseActivity {
         mProgressDialog = ProgressDialogUtil.init(MyFriendActivity.this, null, getString(R.string.please_wait));
     }
 
+    /*设置头文件*/
+    private void setHeaderView() {
+        View headview = LayoutInflater.from(ct).inflate(R.layout.header_fragment_contact, null);
+        mPullToRefreshListView.getRefreshableView().addHeaderView(headview);
+        headview.findViewById(R.id.click_ll).setVisibility(View.GONE);
+        search_edit = (ClearEditText) headview.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) {
+                String str = editable == null ? "" : editable.toString();
+                upDataBySearch(str);
+                mAdapter.setData(mSortFriends);
+            }
+        });
+    }
+
+    /**
+     * 当搜索框有字时候获取
+     *
+     * @param str 搜索框文字
+     */
+    private void upDataBySearch(String str) {
+        if (ListUtils.isEmpty(allFriends)) return;
+        mSortFriends.clear();
+        for (BaseSortModel<Friend> e : allFriends) {
+            String text = e.getBean().getShowName() + e.getBean().getDepart() + e.getBean().getPosition() + e.getBean().getPhone();
+            if (com.xzjmyk.pm.activity.ui.erp.util.StringUtils.isInclude(text, str)) {
+                mSortFriends.add(e);
+            }
+        }
+    }
+
     @Override
     public void onResume() {
         super.onResume();
@@ -276,8 +324,6 @@ public class MyFriendActivity extends BaseActivity {
                     mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
                 if (isPeculiar) {
                     friends = FriendDao.getInstance().getFriends(mLoginUserId, "clickNum", 10);
-//                    friends = FriendDao.getInstance().getFriends(mLoginUserId, "privacy", "true");  //获取关注的人员
-//                    friends = FriendDao.getInstance().getFriends(mLoginUserId, "clickNum", 10);
                 } else
                     friends = FriendDao.getInstance().getFriends(mLoginUserId);
                 if (friends != null)
@@ -290,7 +336,9 @@ public class MyFriendActivity extends BaseActivity {
                 mHandler.postDelayed(new Runnable() {
                     @Override
                     public void run() {
+                        search_edit.setText("");
                         mSortFriends.clear();
+                        allFriends.clear();
                         mSideBar.clearExist();
                         mSideBar.addExist("↑");
                         mSideBar.addExist("↑");
@@ -301,8 +349,10 @@ public class MyFriendActivity extends BaseActivity {
                                 mode.setBean(friends.get(i));
                                 setSortCondition(mode);
                                 mSortFriends.add(mode);
+                                allFriends.add(mode);
                             }
                             Collections.sort(mSortFriends, mBaseComparator);
+                            Collections.sort(allFriends, mBaseComparator);
                         }
                         mAdapter.notifyDataSetInvalidated();
                         mPullToRefreshListView.onRefreshComplete();
@@ -339,7 +389,7 @@ public class MyFriendActivity extends BaseActivity {
         if (!ListUtils.isEmpty(friends)) {
             for (int i = 0; i < friends.size(); i++) {
                 String id = friends.get(i).getUserId();
-                for (int j = 0; j < friends.size(); j++) {
+                for (int j = 0; j < emList.size(); j++) {
                     if (id.equals(String.valueOf(emList.get(j).getEm_IMID()))) {
                         getFriendByRep(emList.get(j), friends.get(i));
                         break;
@@ -466,6 +516,7 @@ public class MyFriendActivity extends BaseActivity {
                     sortFriend.getBean().setRemarkName(remarkName);// 修改备注名称
                     setSortCondition(sortFriend);
                     Collections.sort(mSortFriends, mBaseComparator);
+                    Collections.sort(allFriends, mBaseComparator);
                     mAdapter.notifyDataSetChanged();
                     // 更新到数据库
                     FriendDao.getInstance().setRemarkName(mLoginUserId, sortFriend.getBean().getUserId(), remarkName);

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

@@ -262,6 +262,7 @@ public class NoticesActivity extends BaseActivity {
             } else {
                 model.img.setImageResource(R.drawable.notice_img_1);
             }
+            
 //			model.tv_count.setVisibility(View.GONE);
             return convertView;
         }

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

@@ -36,6 +36,9 @@ import org.apache.http.cookie.Cookie;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Created by Administrator on 2016/4/5.
  */
@@ -79,7 +82,9 @@ public class WebViewCommActivity extends BaseActivity {
         } else {
             clearCookie();
         }
-        webView.getRefreshableView().loadUrl(url);
+        Map<String,String> headers=new HashMap<>();
+        headers.put("clientType","uas client");
+        webView.getRefreshableView().loadUrl(url,headers);
     }
 
     @SuppressLint("SetJavaScriptEnabled")

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

@@ -186,6 +186,7 @@ public class BusinessLessActivity extends BaseActivity implements View.OnClickLi
             case android.R.id.home:
                 onBackPressed();
                 break;
+          
         }
         return true;
     }
@@ -217,7 +218,7 @@ public class BusinessLessActivity extends BaseActivity implements View.OnClickLi
                     progressDialog.dismiss();
                     Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));
                     Crouton.makeText(activity, 30, msg.getData().getString("result"), 
-                            getResources().getColor(R.color.red), 2000);
+                            getResources().getColor(R.color.red), 2000).show();
                     break;
                 case 2:
                     progressDialog.dismiss();
@@ -243,6 +244,7 @@ public class BusinessLessActivity extends BaseActivity implements View.OnClickLi
                     }
                     showSimpleDialog(tv_business_state, "商机阶段");
                     break;
+                 
             }
         }
     };
@@ -278,7 +280,7 @@ public class BusinessLessActivity extends BaseActivity implements View.OnClickLi
                 "\"bcd_remark\":\"" + remark + "\",\n" +
                 "\"bcd_leader\":\"" + tv_leader.getText().toString() + "\",\n" +
                 "\"bcd_date\":\"" + tv_date.getText().toString() + "\",\n" +
-                "\"bcd_bsname\":\"" + process + "\",\n" +
+                "\"bcd_bsname\":\"" + tv_business_state.getText() + "\",\n" +
                 "\"bcd_type\":\"" + typeStr + "\",\n" +
                 "\"bcd_man\":\"" + MyApplication.getInstance().mLoginUser.getNickName()+ "\"" + (this.type == 1 ? ",\n\"bcd_code\":\"" + bcd_code + "\"\n" : "") +
                 "}";

+ 54 - 28
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddLogActivity.java

@@ -18,26 +18,42 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.Area;
 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.StringUtils;
 import com.xzjmyk.pm.activity.util.DeviceInfoUtil;
 import com.xzjmyk.pm.activity.util.ToastUtil;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
 
 public class AddLogActivity extends BaseActivity {
-    private static final int ADD_WHAT = 0x11;
+    private EditText sum_tv;
+    private EditText plan_tv;
+    private EditText learned_tv;
+    private TextView type_tv;
+
+    private boolean imOk = false;
+    private boolean erpOk = false;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-            if (ADD_WHAT == msg.what) {
-                setResult(0x22, new Intent());
-                finish();
+            if (0x11 == msg.what) {
+                imOk = true;
+                if (erpOk) {
+                    setResult(0x22, new Intent());
+                    finish();
+                }
+            } else if (0x12 == msg.what) {
+                erpOk = true;
+                if (imOk) {
+                    setResult(0x22, new Intent());
+                    finish();
+                }
             }
         }
     };
-    private EditText sum_tv;
-    private EditText plan_tv;
-    private EditText learned_tv;
-    private TextView type_tv;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -65,6 +81,7 @@ public class AddLogActivity extends BaseActivity {
         plan_tv = (EditText) findViewById(R.id.plan_tv);
         learned_tv = (EditText) findViewById(R.id.learned_tv);
         type_tv = (TextView) findViewById(R.id.type_tv);
+        type_tv.setText("周日志");
         type_tv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -86,24 +103,32 @@ public class AddLogActivity extends BaseActivity {
     }
 
     private void sendAble() {
-//        <font size=18sp>88</font>
-
         StringBuilder builder = new StringBuilder();
+        builder.append(type_tv.getText().toString() + ":\n");
         if (sum_tv.getText().toString().length() > 0) {
-            builder.append("工作总结:\n"+sum_tv.getText().toString() + "\n");
+            builder.append("  工作总结:\n     " + sum_tv.getText().toString() + "\n");
+        } else {
+            Crouton.makeText(ct, R.string.add_summed);
+            return;
         }
         if (plan_tv.getText().toString().length() > 0) {
-            builder.append("工作计划:\n"+plan_tv.getText().toString() + "\n");
+            builder.append("  工作计划:\n     " + plan_tv.getText().toString() + "\n");
+        } else {
+            Crouton.makeText(ct, R.string.add_plan);
+            return;
         }
         if (learned_tv.getText().toString().length() > 0) {
-            builder.append("心得体会:\n"+learned_tv.getText().toString() + "\n");
+            builder.append("  心得体会:\n     " + learned_tv.getText().toString() + "\n");
+        } else {
+            Crouton.makeText(ct, R.string.add_learned);
+            return;
         }
-        sendWorkLog(builder.toString());
+        sendWorkLog(builder.deleteCharAt(builder.length() - 1).toString());
+        sendWorkLogByErp(sum_tv.getText().toString());
     }
 
-
-    /** 添加一条评论的操作 */
     /**
+     * 添加一条评论的操作
      * 新一条回复
      */
     private void sendWorkLog(String text) {
@@ -138,19 +163,20 @@ public class AddLogActivity extends BaseActivity {
         } else {
             params.put("cityId", "0");
         }
-        ViewUtil.httpSendRequest(this, mConfig.MSG_ADD_URL, params, handler, null, ADD_WHAT, null, null, "get");
+        ViewUtil.httpSendRequest(this, mConfig.MSG_ADD_URL, params, handler, null, 0x11, null, null, "get");
     }
 
-
-    /** 添加一条评论的操作 */
-    /**
-     * 新一条回复
-     */
-    private void  addWorkLog(String text) {
-
-
-
-
+    private void sendWorkLogByErp(String text) {
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/addWorkReport.action";
+        Map<String, Object> formStoreMap = new HashMap<>();
+        formStoreMap.put("wd_empcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        formStoreMap.put("wd_comment", text);
+        String formStore = StringUtils.mapToJson(formStoreMap);
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("caller", "WorkDaily");
+        params.put("formStore", formStore);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(this, url, params, handler, headers, 0x12, null, null, "get");
     }
-
 }

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

@@ -357,7 +357,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
             subord_log.setText("下属拜访");
             my_log.setText("我的拜访");
         } else {
-            title = "办公自动化";
+            title = "行政办公";
         }
         getSupportActionBar().setTitle(title);
         adapter = new OAListAdapter(ct);
@@ -628,7 +628,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                 break;
             case R.id.meeting://会议管理
                 startActivity(new Intent(activity, MeetingActivity.class));
-            break;
+                break;
             case R.id.worklog://工作日志
                 startActivity(new Intent(activity, WorkLogsActivity.class));
                 break;
@@ -645,12 +645,12 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                     chaneTAG(true);
                 break;
             case R.id.oamain_more_menu_ll://更多
-                if (mMenuFlag % 2 == 0){
+                if (mMenuFlag % 2 == 0) {
                     mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_rotate_button);
                     mMoreMenuLl.setVisibility(View.VISIBLE);
                     mMoreMenuTv.setText("收起");
-                }else {
-                    mAnimation = AnimationUtils.loadAnimation(this,R.anim.anim_rotate_button2);
+                } else {
+                    mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_rotate_button2);
                     mMoreMenuLl.setVisibility(View.GONE);
                     mMoreMenuTv.setText("更多");
                 }
@@ -658,7 +658,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                 mMenuFlag++;
                 break;
             case R.id.oa_more_cancel_ll:
-                mAnimation = AnimationUtils.loadAnimation(this,R.anim.anim_rotate_button2);
+                mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_rotate_button2);
                 mMoreMenuIv.startAnimation(mAnimation);
                 mMoreMenuTv.setText("更多");
                 mMoreMenuLl.setVisibility(View.GONE);
@@ -669,19 +669,19 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                 ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.erp://请假申请
-               // startActivity(new Intent(activity, AskForLeaveActivity.class));
-                   startActivity(new Intent(activity, ErpMenActivity.class));
+                // startActivity(new Intent(activity, AskForLeaveActivity.class));
+                startActivity(new Intent(activity, ErpMenActivity.class));
                 break;
             case R.id.outtask://出差申请
                 //startActivity(new Intent(activity, TravelRequestActivity.class));
                 ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.oamain_overtime_apply_tv://加班申请
-               // startActivity(new Intent(activity, OvertimeApplyActivity.class));
+                // startActivity(new Intent(activity, OvertimeApplyActivity.class));
                 ToastUtil.showToast(activity, "该功能还在内测中");
                 break;
             case R.id.oamain_special_attendance_tv://特殊考勤
-             //   ToastUtil.showToast(activity, "该功能还在内测中");
+                //   ToastUtil.showToast(activity, "该功能还在内测中");
                 startActivity(new Intent(activity, QueryActivity.class));
                 break;
         }

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

@@ -394,6 +394,10 @@ public class OutSigninOKActivity extends BaseActivity {
     };
 
     private void doSigninn() {
+        if (!CommonUtil.isNetWorkConnected(ct)) {
+            Crouton.makeText(ct, "当前网络不可用,请检查网络连接");
+            return;
+        }
         if (isSubmit) {
             Crouton.makeText(ct, "当前正在提交");
             return;

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

@@ -17,7 +17,7 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
@@ -27,6 +27,8 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import static com.alibaba.fastjson.JSON.parseObject;
+
 //会议纪要
 public class SaveMeetActivity extends BaseActivity {
     @ViewInject(R.id.summary_et)
@@ -37,36 +39,55 @@ public class SaveMeetActivity extends BaseActivity {
     private EditText wreckage_et;
     @ViewInject(R.id.follow_et)
     private EditText follow_et;
+    private int id;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             progressDialog.dismiss();
             String message = (String) msg.getData().get("result");
-            if (msg.what == 0x11) {
-                JSONObject json = JSON.parseObject(message);
-                if (json.containsKey("success") && json.getBoolean("success")) {
-                    updataCode();
-                } else {
-                    ToastUtil.showToast(SaveMeetActivity.this, "保存会议纪要失败");
-                }
-            } else if (msg.what == 0x12) {
-                Crouton.makeText(SaveMeetActivity.this, "保存会议纪要成功");
-                finish();
-            } else if (msg.what == 0x16) {
-                if (JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
-                    final int id = JSON.parseObject(message).getInteger("id");
-                    CodeUtil.getInstance().getCode(ct, "MeetingDoc", new CodeUtil.OnCodeLinstener() {
-                        @Override
-                        public void callBack(String code) {
-                            saveAble(code, id);
+            switch (msg.what) {
+                case 0x11://提交会议纪要保存
+                    JSONObject json = parseObject(message);
+                    if (json.containsKey("success") && json.getBoolean("success")) {
+                        updataCode();//保存成功后更新编号
+                    } else {
+                        ToastUtil.showToast(SaveMeetActivity.this, "保存会议纪要失败");
+                    }
+                    break;
+                case 0x12://保存后更新编号后提交审批流
+                    submitMeeting(id);
+                    break;
+                case 0x16://获取id
+                    if (parseObject(message).containsKey("success") && parseObject(message).getBoolean("success")) {
+                        id = parseObject(message).getInteger("id");
+                        CodeUtil.getInstance().getCode(ct, "MeetingDoc", new CodeUtil.OnCodeLinstener() {
+                            @Override
+                            public void callBack(String code) {
+                                saveAble(code, id);
+                            }
+                        });
+                    } else {
+                        Crouton.makeText(ct, "获取id错误");
+                    }
+                    break;
+                case 0x17://提交审批流
+                    Crouton.makeText(SaveMeetActivity.this, "保存会议纪要成功");
+                    finish();
+                    break;
+                default:
+                    JsonValidator validator = new JsonValidator();
+                    if (!StringUtils.isEmpty(message) && validator.validate(message)) {
+                        JSONObject errMessage = JSON.parseObject(message);
+                        if (errMessage.containsKey("exceptionInfo")) {
+                            Crouton.makeText(ct, StringUtils.isEmpty(errMessage.getString("exceptionInfo")) ? "" : errMessage.getString("exceptionInfo"));
                         }
-                    });
-                } else {
-                    Crouton.makeText(ct, "获取id错误");
-                }
+                    }
+                    break;
             }
         }
     };
+
+
     private MeetingDocBean bean;
 
     private void getIdByNet() {
@@ -78,6 +99,17 @@ public class SaveMeetActivity extends BaseActivity {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x16, null, null, "post");
     }
 
+    //保存会议后提交
+    private void submitMeeting(int id) {
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "oa/meeting/submitMeetingDoc.action";
+        Map<String, Object> param = new HashMap<>();
+        param.put("caller", "MeetingDoc");
+        param.put("id", id);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x17, null, null, "post");
+    }
+
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == R.id.save) {
@@ -108,19 +140,19 @@ public class SaveMeetActivity extends BaseActivity {
             ToastUtil.showToast(ct, "会议纪要未按要求填写");
             return;
         }
-        builder.append("会议纪要:\n\n" + chche + "\n\n");
+        builder.append("会议纪要:" + chche + "             ");
         chche = resolution_et.getText().toString();
         if (StringUtils.isEmpty(chche)) {
             ToastUtil.showToast(ct, "会议决议未按要求填写");
             return;
         }
-        builder.append("会议决议:\n\n" + chche + "\n\n");
+        builder.append("会议决议:" + chche + "             ");
         chche = wreckage_et.getText().toString();
         if (StringUtils.isEmpty(chche)) {
             ToastUtil.showToast(ct, "遗留问题未按要求填写");
             return;
         }
-        builder.append("遗留问题:\n\n" + chche + "\n\n");
+        builder.append("遗留问题:" + chche + "             ");
         chche = follow_et.getText().toString();
         if (StringUtils.isEmpty(chche)) {
             ToastUtil.showToast(ct, "后续工作未按要求填写");
@@ -161,9 +193,30 @@ public class SaveMeetActivity extends BaseActivity {
         bean.setMd_fileno(fileno);
         bean.setMd_id(id);
         bean.setMd_recorderdate(TimeUtils.f_long_2_str(System.currentTimeMillis()));
+        Map<String, Object> formStoreMap = new HashMap<>();
+        formStoreMap.put("md_id", bean.getMd_id());
+        formStoreMap.put("md_fileno", bean.getMd_fileno());
+        formStoreMap.put("md_recorder", bean.getMd_recorder());
+        formStoreMap.put("md_recorderdate", bean.getMd_recorderdate());
+        formStoreMap.put("md_status", bean.getMd_status());
+        formStoreMap.put("md_title", bean.getMd_title());
+        formStoreMap.put("md_mtname", bean.getMd_mtname());
+        formStoreMap.put("md_meetingname", bean.getMd_meetingname());
+        formStoreMap.put("md_meetingcode", bean.getMd_meetingcode());
+        formStoreMap.put("md_mrcode", bean.getMd_mrcode());
+        formStoreMap.put("md_mrname", bean.getMd_mrname());
+        formStoreMap.put("md_starttime", bean.getMd_starttime());
+        formStoreMap.put("md_statuscode", bean.getMd_statuscode());
+        formStoreMap.put("md_endtime", bean.getMd_endtime());
+        formStoreMap.put("md_group", bean.getMd_group());
+        formStoreMap.put("md_attachs", bean.getMd_attachs());
+        formStoreMap.put("md_contents", bean.getMd_contents());
+        formStoreMap.put("md_groupid", bean.getMd_groupid());
+        formStoreMap.put("md_meetingconvener", bean.getMd_recorder());
+        formStoreMap.put("md_meetingparticipants", bean.getMd_group());
         String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") + "oa/meeting/saveMeetingDoc.action";
-        final Map<String, Object> param = new HashMap<>();
-        String formStore = FlexJsonUtil.toJson(bean);
+        Map<String, Object> param = new HashMap<>();
+        String formStore = StringUtils.mapToJson(formStoreMap);
         String caller = "MeetingDoc";
         param.put("caller", caller);
         param.put("formStore", formStore);

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

@@ -1,5 +1,6 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
@@ -8,8 +9,10 @@ import android.text.Editable;
 import android.text.TextWatcher;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.CheckBox;
@@ -126,6 +129,15 @@ public class SelectActivity extends BaseActivity {
     private ClearEditText search_edit;
 
 
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (android.R.id.home==item.getItemId()){
+            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+            imm.hideSoftInputFromWindow(search_edit.getWindowToken(), 0);
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         initIntent();
@@ -137,7 +149,7 @@ public class SelectActivity extends BaseActivity {
     private void initView() {
         if (!StringUtils.isEmpty(title)) getSupportActionBar().setTitle(title);
         list = (ListView) findViewById(R.id.listview);
-        ClearEditText search_edit = (ClearEditText) findViewById(R.id.search_edit);
+        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) {
@@ -192,6 +204,7 @@ public class SelectActivity extends BaseActivity {
         });
 
 
+
     }
 
     private void initIntent() {

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

@@ -157,7 +157,7 @@ public class UserSelectActivity extends BaseActivity {
         isNet = getIntent().getBooleanExtra("net", false);
 
         selectedStrs = getIntent().getStringExtra("users"); //
-        if(selectedStrs!=null) {
+        if (selectedStrs != null) {
             String[] split = selectedStrs.split(",");
             for (int i = 0; i < split.length; i++) {
                 selectedList.add(split[i]);
@@ -222,6 +222,19 @@ public class UserSelectActivity extends BaseActivity {
         });
     }
 
+    int pot = -1;
+
+    private void setClickSingle(int item) {
+        int i = item - 1 < 0 ? 0 : (item - 1);
+        if (adapter == null || adapter.getUsers() == null) return;
+        List<Employees> lists = adapter.getUsers();
+        if (pot != -1 && lists.size() > pot)//被选择过
+            lists.get(pot).setClick(false);
+        lists.get(i).setClick(true);
+        adapter.setUsers(lists);
+        pot = i;
+    }
+
     //正则
     private static boolean getResult(String text, String str) {
         Pattern p = Pattern.compile(str);

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

@@ -3,7 +3,6 @@ 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;
@@ -81,13 +80,14 @@ 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.title_tv.setVisibility(View.GONE);
+            holder.title_tv.setText("");
             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);
             //状态
@@ -142,7 +142,7 @@ public class OAListAdapter extends BaseAdapter {
             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"));//拜访人
+            holder.object_tv.setText(getJSONString(object, "visitman"));//拜访人
         }
     }
 

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

@@ -93,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()==null?"":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());
@@ -419,6 +419,8 @@ public class DBManager {
         String groupBy = null;
         String having = null;
         String orderBy = null;
+        if (!db.isOpen())
+            db = helper.getWritableDatabase();
         Cursor cursor = db.query(table, null, selection, selectionArgs, groupBy, having, orderBy);
         while (cursor.moveToNext()) {
             EmployeesEntity model = new EmployeesEntity();
@@ -434,8 +436,8 @@ public class DBManager {
             model.setEM_UU(cursor.getString(cursor.getColumnIndex("em_uu")));
             model.setWHICHSYS(cursor.getString(cursor.getColumnIndex("whichsys")));
             model.setEm_IMID(Integer.valueOf(cursor.getString(
-                            cursor.getColumnIndex("em_imid")) == null ? "0" : cursor.getString(
-                            cursor.getColumnIndex("em_imid"))
+                    cursor.getColumnIndex("em_imid")) == null ? "0" : cursor.getString(
+                    cursor.getColumnIndex("em_imid"))
             ));
             entity.add(model);
         }
@@ -468,8 +470,8 @@ public class DBManager {
             model.setEM_UU(cursor.getString(cursor.getColumnIndex("em_uu")));
             model.setWHICHSYS(cursor.getString(cursor.getColumnIndex("whichsys")));
             model.setEm_IMID(Integer.valueOf(cursor.getString(
-                            cursor.getColumnIndex("em_imid")) == null ? "0" : cursor.getString(
-                            cursor.getColumnIndex("em_imid"))
+                    cursor.getColumnIndex("em_imid")) == null ? "0" : cursor.getString(
+                    cursor.getColumnIndex("em_imid"))
             ));
         }
         cursor.close();
@@ -477,7 +479,7 @@ public class DBManager {
     }
 
     /**************************************************************************
-     ************** 未订阅表AllSubs操作  ***************************************
+     * ************* 未订阅表AllSubs操作  ***************************************
      *************************************************************************/
     public void saveToAllSubs(SubscriptionNumber subscriptionNumber) {
         String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master,subs_username) values (?,?,?,?,?,?,?)";

+ 534 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/ContactFragment.java

@@ -1,41 +1,562 @@
 package com.xzjmyk.pm.activity.ui.erp.fragment;
 
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ListView;
+import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.AppConstant;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.adapter.FriendSortAdapter;
+import com.xzjmyk.pm.activity.bean.Friend;
+import com.xzjmyk.pm.activity.sortlist.BaseComparator;
+import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
+import com.xzjmyk.pm.activity.sortlist.PingYinUtil;
+import com.xzjmyk.pm.activity.sortlist.SideBar;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
+import com.xzjmyk.pm.activity.ui.circle.BasicInfoActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.CommonFragmentActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.CompanyContactsActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.MyFriendActivity;
+import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
+import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
+import com.xzjmyk.pm.activity.ui.erp.entity.HrorgsEntity;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.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.CustomProgressDialog;
+import com.xzjmyk.pm.activity.ui.message.ChatActivity;
+import com.xzjmyk.pm.activity.ui.message.NewFriendActivity;
+import com.xzjmyk.pm.activity.ui.nearby.UserSearchActivity;
+import com.xzjmyk.pm.activity.ui.tool.ThreadPool;
+import com.xzjmyk.pm.activity.view.ClearEditText;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
  * Created by pengminggong on 2016/10/12.
  */
 
-public class ContactFragment extends EasyFragment {
-//    @ViewInject(R.id.sidebar)
-//    private SideBar sidebar;
-//    @ViewInject(R.id.text_dialog)
-//    private TextView text_dialog;
-//    @ViewInject(listview)
-//    private PullToRefreshListView refreshListView;
-//    private ListView listView;
-//    private View headerView;
+public class ContactFragment extends EasyFragment implements View.OnClickListener {
+    @ViewInject(R.id.sidebar)
+    private SideBar sidebar;
+    @ViewInject(R.id.text_dialog)
+    private TextView text_dialog;
+    @ViewInject(R.id.pull_refresh_list)
+    private PullToRefreshListView refreshListView;
+
+
+    private FriendSortAdapter adapter;
+    private DBManager manager;
+    private String loginUserId;
+    private List<BaseSortModel<Friend>> showDatas;//显示的数据
+    private List<BaseSortModel<Friend>> allDatas;//获取到的全部数据
+    private BaseComparator comparator;
+    private ClearEditText search_edit;
+    private CustomProgressDialog mcProgressDialog;
+
+    private Handler handler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case 0x11:
+                    writeData(msg);
+                    loadDataInThread();
+                    break;
+            }
+        }
+    };
+    private IntentFilter inputFilter;
+    private BroadcastReceiver receiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if ("home".equals(intent.getStringExtra("falg"))) {
+                loadDataInThread();
+            }
+        }
+    };
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        inputFilter = new IntentFilter("com.app.home.update");
+        getActivity().registerReceiver(receiver, inputFilter);
+        setHasOptionsMenu(true);
+    }
 
     @Override
     protected int inflateLayoutId() {
-        return R.layout.header_fragment_contact;
+        return R.layout.fragment_contact;
+    }
+
+    @Override
+    public void onDestroy() {
+        getActivity().unregisterReceiver(receiver);
+        super.onDestroyView();
+        if (manager != null)
+            manager.closeDB();
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
+        inflater.inflate(R.menu.menu_nearby, menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.search) {
+            startActivity(new Intent(getActivity(), UserSearchActivity.class));
+        }
+        return super.onOptionsItemSelected(item);
+
     }
 
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
-        ViewUtils.inject(getmRootView());
+        if (createView) {
+            ViewUtils.inject(getmRootView());
+            initView();
+            initEvent();
+        }
     }
 
+    private void initEvent() {
+        //侧边栏检索
+        sidebar.setOnTouchingLetterChangedListener(new SideBar.OnTouchingLetterChangedListener() {
+            @Override
+            public void onTouchingLetterChanged(String s) {
+                // 该字母首次出现的位置
+                int position = adapter.getPositionForSection(s.charAt(0));
+                if (position != -1) {
+                    int count = refreshListView.getRefreshableView().getHeaderViewsCount();
+                    refreshListView.getRefreshableView().setSelection(position + count);
+                }
+                if ("↑".equals(s)) {
+                    refreshListView.getRefreshableView().setSelection(1);
+                }
+            }
 
+            @Override
+            public void onTouchingUp() {
+            }
+        });
+        refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
+            @Override
+            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
+                loadDataInThread();
+            }
+        });
+        //item点击事件处理
+        refreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> adapterView, View view, int i, long id) {
+                List<BaseSortModel<Friend>> list = adapter.getmSortFriends();
+                if (!ListUtils.isEmpty(list)) {
+                    Friend friend = list.get((int) id).getBean();
+                    clickFriend(friend);
+                }
+            }
+        });
+        //搜索框处理
+        if (search_edit == null) return;
+        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) {
+                String str = editable == null ? "" : editable.toString();
+                upDataBySearch(str);
+                adapter.setData(showDatas);
+            }
+        });
+    }
 
-    public void setHeaderView(View headerView) {
-//        listView.addHeaderView(headerView);
 
+    private void initView() {
+        showDatas = new ArrayList<>();
+        allDatas = new ArrayList<>();
+        mcProgressDialog = CustomProgressDialog.createDialog(ct);
+        comparator = new BaseComparator();
+        loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+        setHeaderView();
+        refreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+        sidebar.setTextView(text_dialog);
+        adapter = new FriendSortAdapter(ct, showDatas);
+        refreshListView.getRefreshableView().setAdapter(adapter);
+        loadDataInThread();
+        mcProgressDialog.show();
+    }
+
+    /*设置头文件*/
+    private void setHeaderView() {
+        View headview = LayoutInflater.from(ct).inflate(R.layout.header_fragment_contact, null);
+        refreshListView.getRefreshableView().addHeaderView(headview);
+        search_edit = (ClearEditText) headview.findViewById(R.id.search_edit);
+        headview.findViewById(R.id.company).setOnClickListener(this);//企业结构
+        headview.findViewById(R.id.group).setOnClickListener(this);//商务群
+        headview.findViewById(R.id.uu_friend).setOnClickListener(this);//我的好友
+        headview.findViewById(R.id.peculiar_tv).setOnClickListener(this);//我的好友
+    }
+
+    private void clickFriend(Friend friend) {
+        Intent intent = null;
+        if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
+            intent = new Intent(getActivity(), NewFriendActivity.class);
+        } else if (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE)) {// 新朋友消息
+            intent = new Intent(getActivity(), ChatActivity.class);
+            intent.putExtra(ChatActivity.FRIEND, friend);
+        } else {
+            intent = new Intent(getActivity(), BasicInfoActivity.class);
+            intent.putExtra(AppConstant.EXTRA_NICK_CODE, friend.getPhone());
+            intent.putExtra(AppConstant.EXTRA_USER_ID, friend.getUserId());
+            intent.putExtra(AppConstant.EXTRA_NICK_NAME, friend.getNickName());
+            intent.putExtra("friend", friend);
+        }
+        startActivity(intent);
+    }
+
+    //将企业架构写入数据库
+    public void writeData(android.os.Message msg) {
+        String result = msg.getData().getString("result");
+        JSONObject jsonobject = JSON.parseObject(result);
+        String server_time = jsonobject.getString("sysdate");//服务器系统时间
+        //实体类
+        List<HrorgsEntity> hrorgsEntities = JSON.parseArray(jsonobject.getString("hrorgs"), HrorgsEntity.class);
+        List<EmployeesEntity> employeesEntities = JSON.parseArray(jsonobject.getString("employees"), EmployeesEntity.class);
+        String master = CommonUtil.getSharedPreferences(ct, "erp_master");
+        HrorgsEntity hrEntity = manager.select_getRootData(new String[]{master}, "whichsys=?");
+        boolean isFristLoad = true;//是否第一次加载
+        if (hrEntity != null) {
+            isFristLoad = false;
+        }
+        if (!hrorgsEntities.isEmpty() || !employeesEntities.isEmpty()) {
+            insertDataSqlite(isFristLoad, hrorgsEntities, employeesEntities,
+                    server_time);
+        }
+    }
+
+    /**
+     * 将数据插入数据库
+     *
+     * @param isFristLoad       是否第一次插入数据
+     * @param hrorgsEntities
+     * @param employeesEntities
+     * @param servertime
+     */
+    public void insertDataSqlite(boolean isFristLoad, List<HrorgsEntity> hrorgsEntities, List<EmployeesEntity> employeesEntities
+            , String servertime) {
+        if (isFristLoad) {
+            manager.saveHrogrs(hrorgsEntities);
+            manager.saveEmployees(employeesEntities);
+        } else {
+            synSqliteDataforServer(hrorgsEntities, employeesEntities);
+        }
+        manager.deleteHrogrsAndEmployees();
+        Map<String, Object> dateCaches = new HashMap<String, Object>();
+        String time = dateMinute(servertime);
+        dateCaches.put("ed_lastdate", time);
+        dateCaches.put("ed_kind", "通讯录");
+        dateCaches.put("ed_company", CommonUtil.getSharedPreferences(ct, "erp_commpany"));
+        dateCaches.put("ed_whichsys", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        String db_time = manager.select_getCacheTime(new String[]{}, "ed_company=? and ed_whichsys=?");
+        if (db_time != null) {
+            manager.updateCacheTime(dateCaches);
+        } else {
+            manager.saveCacheTime(dateCaches);
+        }
+    }
+
+    /**
+     * @功能:时间减法
+     */
+    private String dateMinute(String datetime) {
+        String str = datetime;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = new Date();
+        try {
+            date = sdf.parse(str);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) - 2);
+        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()));
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
+    }
+
+    /**
+     * @功能:同步数据
+     */
+    private void synSqliteDataforServer(List<HrorgsEntity> hrorgsEntities, List<EmployeesEntity> employeesEntities) {
+        if (!hrorgsEntities.isEmpty()) {
+            List<HrorgsEntity> insertHrorgsList = new ArrayList<HrorgsEntity>();
+            List<HrorgsEntity> updateHrorgsList = new ArrayList<HrorgsEntity>();
+            for (int i = 0; i < hrorgsEntities.size(); i++) {
+                HrorgsEntity entity = hrorgsEntities.get(i);
+                String or_code = entity.getOr_code();
+                String whichsys = entity.getWhichsys();
+                if ("UPDATE".equals(entity.getFlag())) {
+                    HrorgsEntity hentity = manager.select_getRootData(new String[]{or_code, whichsys}, "or_code=? and whichsys=?");
+                    if (hentity != null) {
+                        updateHrorgsList.add(entity);
+                    } else {
+                        insertHrorgsList.add(entity);
+                    }
+                } else if ("INSERT".equals(entity.getFlag())) {
+                    insertHrorgsList.add(entity);
+                }
+            }
+            manager.saveHrogrs(insertHrorgsList);
+            manager.updateHrogrs(updateHrorgsList);
+        }
+        if (!employeesEntities.isEmpty()) {
+            List<EmployeesEntity> insertEmployeesList = new ArrayList<>();
+            List<EmployeesEntity> updateEmployeesList = new ArrayList<EmployeesEntity>();
+            for (int i = 0; i < employeesEntities.size(); i++) {
+                EmployeesEntity eEntity = employeesEntities.get(i);
+                String em_code = eEntity.getEM_CODE();
+                String whichsys = eEntity.getWHICHSYS();
+                if (com.xzjmyk.pm.activity.util.StringUtils.isEmpty(em_code)) return;
+                if ("UPDATE".equals(eEntity.getFLAG())) {
+                    List<EmployeesEntity> tempEntity = manager.select_getEmployee(new String[]{em_code, whichsys}, "em_code=? and whichsys=?");
+                    if (tempEntity.isEmpty()) {
+                        insertEmployeesList.add(eEntity);
+                    } else {
+                        updateEmployeesList.add(eEntity);
+                    }
+                } else if ("INSERT".equals(eEntity.getFLAG())) {
+                    insertEmployeesList.add(eEntity);
+                }
+            }
+            manager.saveEmployees(insertEmployeesList);
+            manager.updateEmployees(updateEmployeesList);
+        }
+    }
+
+    /*开启线程获取数据*/
+    private void loadDataInThread() {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                List<BaseSortModel<Friend>> chche = getFriendsByErpDB();//通过数据库获取数据
+                if (ListUtils.isEmpty(chche))
+                    //TODO 通过网络获取数据
+                    handler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            loadFriendsByNet();
+                        }
+                    });
+                else
+                    loadDataInThread(chche);
+            }
+        });
+    }
+
+    /*在线程中处理数据
+    * 1.数据库获取
+    * 2.网络获取
+    * */
+    private void loadDataInThread(List<BaseSortModel<Friend>> chche) {
+        allDatas = chche;
+
+        if (search_edit == null || TextUtils.isEmpty(search_edit.getText())) {//没有搜索数据
+            showDatas = chche;
+        } else {//
+            String str = search_edit.getText().toString();
+            upDataBySearch(str);
+        }
+        handler.post(new Runnable() {
+            @Override
+            public void run() {
+                adapter.setData(showDatas);
+                refreshListView.onRefreshComplete();
+                if (mcProgressDialog.isShowing())
+                    mcProgressDialog.dismiss();
+            }
+        });
+    }
+
+    /**
+     * 当搜索框有字时候获取
+     *
+     * @param str 搜索框文字
+     */
+    private void upDataBySearch(String str) {
+        if (ListUtils.isEmpty(allDatas)) return;
+        showDatas = new ArrayList<>();
+        for (BaseSortModel<Friend> e : allDatas) {
+            String text = e.getBean().getShowName() + e.getBean().getDepart() + e.getBean().getPosition() + e.getBean().getPhone();
+            if (StringUtils.isInclude(text, str)) {
+                showDatas.add(e);
+            }
+        }
+    }
+
+    /**
+     * 通过数据库获取数据显示
+     *
+     * @return 查询到数据列表
+     */
+    private List<BaseSortModel<Friend>> getFriendsByErpDB() {
+        if (manager == null)
+            manager = new DBManager(MyApplication.getInstance());
+        String master = CommonUtil.getSharedPreferences(ct, "erp_master");
+        List<EmployeesEntity> emList = null;
+        if (!StringUtils.isEmpty(master)) {
+            emList = manager.select_getEmployee(new String[]{master}, "whichsys=?");
+        }
+        if (ListUtils.isEmpty(emList)) return null;
+        List<BaseSortModel<Friend>> list = new ArrayList<>();
+        for (EmployeesEntity e : emList) {
+            if (e.getEm_IMID() != 0 && String.valueOf(e.getEm_IMID()).equals(loginUserId))
+                continue;
+            list.add(getFriendByErp(e));
+        }
+
+        if (ListUtils.isEmpty(list)) {
+            list = new ArrayList<>();
+        } else {
+            Collections.sort(list, comparator);
+        }
+        return list;
+    }
+
+    /**
+     * 将Rep转化为Friend对象
+     *
+     * @param e 员工对象
+     * @return
+     */
+    private BaseSortModel<Friend> getFriendByErp(EmployeesEntity e) {
+        Friend friend = new Friend();
+        friend.setTimeCreate((int) (System.currentTimeMillis() / 1000));
+        friend.setOwnerId(loginUserId);
+        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);
+        BaseSortModel<Friend> mode = new BaseSortModel<>();
+        mode.setBean(friend);
+        setSortCondition(mode);
+        return mode;
+    }
+
+    /*设置当前mode所在的索引值*/
+    private final void setSortCondition(BaseSortModel<Friend> mode) {
+        Friend friend = mode.getBean();
+        if (friend == null) {
+            return;
+        }
+        String name = friend.getShowName();
+        String wholeSpell = PingYinUtil.getPingYin(name);
+        if (!TextUtils.isEmpty(wholeSpell)) {
+            String firstLetter = Character.toString(wholeSpell.charAt(0));
+            sidebar.addExist(firstLetter);
+            mode.setWholeSpell(wholeSpell);
+            mode.setFirstLetter(firstLetter);
+            mode.setSimpleSpell(PingYinUtil.converterToFirstSpell(name));
+        } else {// 如果全拼为空,理论上是一种错误情况,因为这代表着昵称为空
+            mode.setWholeSpell("#");
+            mode.setFirstLetter("#");
+            mode.setSimpleSpell("#");
+        }
+    }
+
+    /**
+     * 通过网络获取数据
+     *
+     * @return
+     */
+    public void loadFriendsByNet() {
+        String master = CommonUtil.getSharedPreferences(ct, "erp_master");
+        String commpany = CommonUtil.getSharedPreferences(ct, "erp_commpany");
+        if (StringUtils.isEmpty(master)) return;
+        String date = manager.select_getCacheTime(
+                new String[]{commpany, master},
+                "ed_company=? and ed_whichsys=?");
+        String url = Constants.getAppBaseUrl(ct) + "mobile/getAllHrorgEmps.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("master", master);
+        if (date == null) {
+            date = "";
+        }
+        param.put("lastdate", date);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        com.xzjmyk.pm.activity.ui.erp.net.
+                ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x11, null, null, "get");
+    }
+
+    @Override
+    public void onClick(View view) {
+        Intent intent = null;
+        switch (view.getId()) {
+            case R.id.company://企业架构
+                intent = new Intent(ct, CompanyContactsActivity.class);
+                ct.startActivity(intent);
+                break;
+            case R.id.group://群
+                intent = new Intent(ct, CommonFragmentActivity.class);
+                intent.putExtra("type", Constants.TYPE_CHAT_All);
+                ct.startActivity(intent);
+                break;
+            case R.id.uu_friend://uu好友
+                intent = new Intent(ct, MyFriendActivity.class);
+                ct.startActivity(intent);
+                break;
+            case R.id.peculiar_tv://常用联系人
+                intent = new Intent(ct, MyFriendActivity.class);
+                intent.putExtra("isPeculiar", true);
+                ct.startActivity(intent);
+                break;
+        }
     }
 }

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

@@ -13,6 +13,7 @@ import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
+import android.os.Message;
 import android.text.Editable;
 import android.text.InputFilter;
 import android.text.TextUtils;
@@ -26,10 +27,11 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.EditText;
-import android.widget.ExpandableListView;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
@@ -63,14 +65,13 @@ import com.xzjmyk.pm.activity.ui.erp.entity.HrorgsEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
 import com.xzjmyk.pm.activity.ui.message.ChatActivity;
 import com.xzjmyk.pm.activity.ui.message.NewFriendActivity;
 import com.xzjmyk.pm.activity.ui.nearby.UserSearchActivity;
-import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
 import com.xzjmyk.pm.activity.util.StringUtils;
-import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.ClearEditText;
 import com.xzjmyk.pm.activity.volley.ArrayResult;
@@ -80,17 +81,25 @@ import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
 import com.xzjmyk.pm.activity.xmpp.CoreService;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 import static com.xzjmyk.pm.activity.R.id.company;
 
+
 /**
  * @desc:联系人
  * @author:Administrator on 2016/1/30 16:15
  */
+@Deprecated
 public class LinksManFragment extends XutilsFragment implements View.OnClickListener {
     private Context ct;
     private PullToRefreshListView mPullToRefreshListView;
@@ -103,7 +112,34 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     private BaseComparator<Friend> mBaseComparator;
     private FriendSortAdapter mAdapter;
     private String mLoginUserId;
-    private Handler mHandler = new Handler();
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case LOAD_COMPANYDATA_SUCESS://企业架构数据
+                    String result = msg.getData().getString("result");
+                    JSONObject jsonobject = JSON.parseObject(result);
+                    String server_time = jsonobject.getString("sysdate");
+                    List<HrorgsEntity> hrorgsEntities = JSON.parseArray(jsonobject.getString("hrorgs"), HrorgsEntity.class);
+                    List<EmployeesEntity> employeesEntities = JSON.parseArray(jsonobject.getString("employees"), EmployeesEntity.class);
+                    String master = CommonUtil.getSharedPreferences(ct, "erp_master");
+                    HrorgsEntity hrEntity = manager.select_getRootData(new String[]{master}, "whichsys=?");
+                    boolean isFristLoad = true;//是否第一次加载
+                    if (hrEntity != null) {
+                        isFristLoad = false;
+                    }
+                    if (!hrorgsEntities.isEmpty() || !employeesEntities.isEmpty()) {
+                        insertDataSqlite(isFristLoad, hrorgsEntities, employeesEntities,
+                                server_time);    //写入缓存
+                        loadData();//同步数据库之后更新界面
+                    } else {
+                        //取缓存
+                        loadData();
+                    }
+                    break;
+            }
+        }
+    };
     private boolean mNeedUpdate = true;
     private Activity mActivity;
     private DBManager manager;
@@ -115,7 +151,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         public void onReceive(Context context, Intent intent) {
             if ("home".equals(intent.getStringExtra("falg"))) {
                 upDataFriend();
-                loadData();
+                loadCompanyData();//切换账套之后会触发加载企业通讯录数据的方法---该方法内部实现了缓存处理
             } else if (intent.getBooleanExtra("isGood", false)) {
                 updateGoodFriend();
             }
@@ -125,7 +161,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
     private ClearEditText search_edit;
     private View headview;
-    private ExpandableListView expandableListView;
     private ContactExpanAdapter adapter;
 
     public void onResult() {
@@ -150,11 +185,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 intent.putExtra("type", Constants.TYPE_CHAT_All);
                 ct.startActivity(intent);
                 break;
-           /* case R.id.my_friend_manage://管理群
-                intent = new Intent(ct, CommonFragmentActivity.class);
-                intent.putExtra("type", Constants.TYPE_CHAT_MANAGE);
-                ct.startActivity(intent);
-                break;*/
+
             case R.id.peculiar_tv://我的关注
                 intent = new Intent(ct, MyFriendActivity.class);
                 intent.putExtra("isPeculiar", true);
@@ -164,8 +195,8 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     }
 
     public LinksManFragment() {
-        mSortFriends = new ArrayList<BaseSortModel<Friend>>();
-        sortFrientSeach = new ArrayList<BaseSortModel<Friend>>();
+        mSortFriends = new ArrayList<>();
+        sortFrientSeach = new ArrayList<>();
         mBaseComparator = new BaseComparator<Friend>();
         mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
     }
@@ -192,22 +223,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         }
     }
 
-
-    private Friend EnterChatAction(EmployeesEntity employee) {
-        Friend friend = new Friend();
-        friend.setUserId(String.valueOf(employee.getEm_IMID()));
-        friend.setEmCode(employee.getEM_CODE());
-        friend.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-        friend.setRemarkName(employee.getEM_NAME());//备注
-        friend.setNickName(employee.getEM_NAME());//昵称
-        friend.setPhone(employee.getEM_MOBILE());//手机
-        friend.setDepart(employee.getEM_DEPART());//部门
-        friend.setPosition(employee.getEM_POSITION());//职位
-        friend.setTimeSend(TimeUtils.sk_time_current_time());
-        friend.setStatus(Friend.STATUS_UNKNOW);
-        return friend;
-    }
-
     private void upDataFriend() {
         HashMap<String, String> params = new HashMap<String, String>();
         params.put("access_token", MyApplication.getInstance().mAccessToken);
@@ -372,45 +387,12 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         headview = LayoutInflater.from(ct).inflate(R.layout.header_fragment_contact, null);
         mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
         mPullToRefreshListView.getRefreshableView().addHeaderView(headview);
-        expandableListView = (ExpandableListView) headview.findViewById(R.id.expandablelistview);
-        expandableListView.setVisibility(View.GONE);
         search_edit = (ClearEditText) headview.findViewById(R.id.search_edit);
         headview.findViewById(company).setOnClickListener(this);//企业结构
         headview.findViewById(R.id.group).setOnClickListener(this);//商务群
         headview.findViewById(R.id.uu_friend).setOnClickListener(this);//我的好友
         headview.findViewById(R.id.peculiar_tv).setOnClickListener(this);//我的好友
         updateGoodFriend();
-        expandableListView.setAdapter(adapter);
-        expandableListView.post(new Runnable() {//在OncreateView中视图还没有创建,所以不能获取高度
-            @Override
-            public void run() {
-                groupHeight = expandableListView.getHeight();
-            }
-        });
-        expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
-            @Override
-            public boolean onGroupClick(ExpandableListView parent, View view, int i, long l) {
-                int children = parent.getExpandableListAdapter().getChildrenCount(i);
-                int childHeight = view.getHeight() + DisplayUtil.dip2px(ct, 8);
-                ViewGroup.LayoutParams params = expandableListView.getLayoutParams();
-                params.width = ViewGroup.LayoutParams.MATCH_PARENT;
-                if (!parent.isGroupExpanded(i)) {//判断点击前是否是打开状态,点击前打开,点击后为关闭
-                    params.height = groupHeight + children * childHeight;
-                } else {
-                    params.height = groupHeight;
-                }
-                expandableListView.setLayoutParams(params);
-                return false;
-            }
-        });
-        expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
-            @Override
-            public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
-                List<List<Friend>> bean = ((ContactExpanAdapter) expandableListView.getExpandableListAdapter()).getFriends();
-                clickFriend(bean.get(i).get(i1));
-                return false;
-            }
-        });
     }
 
     private void updateGoodFriend() {
@@ -906,4 +888,138 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         }
         return super.onOptionsItemSelected(item);
     }
+
+    private static final String TAG = "LinksManFragment";
+    private static final int LOAD_COMPANYDATA_SUCESS = 11;
+
+    /**
+     * @desc:检查是否加载企业通讯录数据
+     * @author:Arison on 2016/10/24
+     */
+    public void loadCompanyData() {
+        String master = CommonUtil.getSharedPreferences(ct, "erp_master");
+        String commpany = CommonUtil.getSharedPreferences(ct, "erp_commpany");
+        if (!StringUtils.isEmpty(master)) {
+            String date = manager.select_getCacheTime(
+                    new String[]{commpany, master},
+                    "ed_company=? and ed_whichsys=?");
+            Log.i(TAG, "loadCompanyData() 数据库缓存时间:" + date);
+            String url = Constants.getAppBaseUrl(ct) + "mobile/getAllHrorgEmps.action";
+            final Map<String, Object> param = new HashMap<>();
+            param.put("master", master);
+            if (date == null) {
+                date = "";
+            }
+            param.put("lastdate", date);
+            LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+            headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+            ViewUtil.httpSendRequest(ct, url, param, mHandler, headers, LOAD_COMPANYDATA_SUCESS, null, null, "get");
+        } else {
+            Log.i(TAG, "master 为null");
+        }
+    }
+
+    /**
+     * @author Administrator
+     * @功能:写入数据库 isFristLoad 标志是否是第一次加载(数据库是否有缓存);
+     * 因为第一次,flag字段不管是更新或者是插入,都执行插入操作;
+     */
+    public void insertDataSqlite(boolean isFristLoad,
+                                 List<HrorgsEntity> hrorgsEntities,
+                                 List<EmployeesEntity> employeesEntities
+            , String servertime) {
+        Log.i(TAG, "开始时间:" + CommonUtil.getStringDate(System.currentTimeMillis()));
+        if (isFristLoad) {
+            manager.saveHrogrs(hrorgsEntities);
+            manager.saveEmployees(employeesEntities);
+        } else {
+            synSqliteDataforServer(hrorgsEntities, employeesEntities);
+        }
+        manager.deleteHrogrsAndEmployees();
+        Map<String, Object> dateCaches = new HashMap<String, Object>();
+        String time = dateMinute(servertime);
+        Log.i(TAG, "缓存时间相减后:" + time);
+        dateCaches.put("ed_lastdate", time);
+        dateCaches.put("ed_kind", "通讯录");
+        dateCaches.put("ed_company", CommonUtil.getSharedPreferences(ct, "erp_commpany"));
+        dateCaches.put("ed_whichsys", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        String db_time = manager.select_getCacheTime(new String[]{}, "ed_company=? and ed_whichsys=?");
+        if (db_time != null) {
+            manager.updateCacheTime(dateCaches);
+        } else {
+            manager.saveCacheTime(dateCaches);
+        }
+        Log.i(TAG, "结束时间:" + CommonUtil.getStringDate(System.currentTimeMillis()));
+    }
+
+    /**
+     * @author Administrator
+     * @功能:时间减法
+     */
+    private String dateMinute(String datetime) {
+        String str = datetime;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = new Date();
+        try {
+            date = sdf.parse(str);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) - 2);
+        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()));
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
+    }
+
+    /**
+     * @author Administrator
+     * @功能:同步数据
+     */
+    private void synSqliteDataforServer(List<HrorgsEntity> hrorgsEntities, List<EmployeesEntity> employeesEntities) {
+        if (!hrorgsEntities.isEmpty()) {
+            List<HrorgsEntity> insertHrorgsList = new ArrayList<HrorgsEntity>();
+            List<HrorgsEntity> updateHrorgsList = new ArrayList<HrorgsEntity>();
+            for (int i = 0; i < hrorgsEntities.size(); i++) {
+                HrorgsEntity entity = hrorgsEntities.get(i);
+                String or_code = entity.getOr_code();
+                String whichsys = entity.getWhichsys();
+                if ("UPDATE".equals(entity.getFlag())) {
+                    HrorgsEntity hentity = manager.select_getRootData(new String[]{or_code, whichsys}, "or_code=? and whichsys=?");
+                    if (hentity != null) {
+                        updateHrorgsList.add(entity);
+                    } else {
+                        insertHrorgsList.add(entity);
+                    }
+                } else if ("INSERT".equals(entity.getFlag())) {
+                    insertHrorgsList.add(entity);
+                }
+            }
+            manager.saveHrogrs(insertHrorgsList);
+            manager.updateHrogrs(updateHrorgsList);
+        }
+        if (!employeesEntities.isEmpty()) {
+            List<EmployeesEntity> insertEmployeesList = new ArrayList<EmployeesEntity>();
+            List<EmployeesEntity> updateEmployeesList = new ArrayList<EmployeesEntity>();
+            for (int i = 0; i < employeesEntities.size(); i++) {
+                EmployeesEntity eEntity = employeesEntities.get(i);
+                String em_code = eEntity.getEM_CODE();
+                String whichsys = eEntity.getWHICHSYS();
+                if (StringUtils.isEmpty(em_code)) return;
+                if ("UPDATE".equals(eEntity.getFLAG())) {
+                    List<EmployeesEntity> tempEntity = manager.select_getEmployee(new String[]{em_code, whichsys}, "em_code=? and whichsys=?");
+                    if (tempEntity.isEmpty()) {
+                        insertEmployeesList.add(eEntity);
+                    } else {
+                        updateEmployeesList.add(eEntity);
+                    }
+                } else if ("INSERT".equals(eEntity.getFLAG())) {
+                    insertEmployeesList.add(eEntity);
+                }
+            }
+            manager.saveEmployees(insertEmployeesList);
+            manager.updateEmployees(updateEmployeesList);
+        }
+    }
 }

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

@@ -116,7 +116,7 @@ public class ViewUtil {
     }
 
     public static void ShowMessageTitle(Context ct, String msg) {
-        new MaterialDialog.Builder(ct).title("系提示").content(msg)
+        new MaterialDialog.Builder(ct).title("系提示").content(msg)
                 .positiveText("关闭").autoDismiss(false)
                 .callback(new ButtonCallback() {
                     @Override
@@ -127,7 +127,7 @@ public class ViewUtil {
     }
 
     public static void ShowMessageTitleAutoDismiss(Context ct, String msg, long time) {
-        final MaterialDialog messageDialog = new MaterialDialog.Builder(ct).title("系提示").content(msg)
+        final MaterialDialog messageDialog = new MaterialDialog.Builder(ct).title("系提示").content(msg)
                 .positiveText("关闭").autoDismiss(false)
                 .callback(new ButtonCallback() {
                     @Override

+ 78 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/SelectPicPopupWindow.java

@@ -0,0 +1,78 @@
+package com.xzjmyk.pm.activity.ui.erp.view;
+
+import android.content.Context;
+import android.graphics.drawable.ColorDrawable;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.View.OnTouchListener;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.Button;
+import android.widget.PopupWindow;
+import android.widget.TextView;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+
+public class SelectPicPopupWindow extends PopupWindow {
+
+
+    private Button btn_take_photo, btn_pick_photo, btn_cancel;
+    private View mMenuView;
+    private final TextView phone_tv;
+
+    public SelectPicPopupWindow(Context context, String phone, OnClickListener itemsOnClick) {
+        super(context);
+        LayoutInflater inflater = (LayoutInflater) context
+                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        mMenuView = inflater.inflate(R.layout.alert_dialog, null);
+        btn_take_photo = (Button) mMenuView.findViewById(R.id.btn_take_photo);
+        btn_pick_photo = (Button) mMenuView.findViewById(R.id.btn_pick_photo);
+        btn_cancel = (Button) mMenuView.findViewById(R.id.btn_cancel);
+        phone_tv = (TextView) mMenuView.findViewById(R.id.phone_tv);
+        phone_tv.setText(StringUtils.isEmpty(phone) ? "" : phone);
+        //取消按钮
+        btn_cancel.setOnClickListener(new OnClickListener() {
+            public void onClick(View v) {
+                //销毁弹出框  
+                dismiss();
+            }
+        });
+        //设置按钮监听  
+        btn_pick_photo.setOnClickListener(itemsOnClick);
+        btn_take_photo.setOnClickListener(itemsOnClick);
+        //设置SelectPicPopupWindow的View  
+        this.setContentView(mMenuView);
+        //设置SelectPicPopupWindow弹出窗体的宽  
+        this.setWidth(LayoutParams.MATCH_PARENT);
+        //设置SelectPicPopupWindow弹出窗体的高  
+        this.setHeight(LayoutParams.WRAP_CONTENT);
+        //设置SelectPicPopupWindow弹出窗体可点击  
+        this.setFocusable(true);
+        //设置SelectPicPopupWindow弹出窗体动画效果  
+        this.setAnimationStyle(R.style.AnimBottom);
+        //实例化一个ColorDrawable颜色为半透明
+        ColorDrawable dw = new ColorDrawable(0xb0000000);
+        //设置SelectPicPopupWindow弹出窗体的背景  
+        this.setBackgroundDrawable(dw);
+        //mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框  
+        mMenuView.setOnTouchListener(new OnTouchListener() {
+
+            public boolean onTouch(View v, MotionEvent event) {
+
+                int height = mMenuView.findViewById(R.id.pop_layout).getTop();
+                int y = (int) event.getY();
+                if (event.getAction() == MotionEvent.ACTION_UP) {
+                    if (y < height) {
+                        dismiss();
+                    }
+                }
+                return true;
+            }
+        });
+
+    }
+
+
+}  

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

@@ -46,6 +46,7 @@ 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.util.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.MasterDialog;
+import com.xzjmyk.pm.activity.ui.erp.view.SelectPicPopupWindow;
 import com.xzjmyk.pm.activity.ui.tool.SingleImagePreviewActivity;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
@@ -181,6 +182,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
             }
         }
     };
+    private SelectPicPopupWindow menuWindow;
 
     public MeFragment() {
     }
@@ -308,7 +310,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
                 break;
             case R.id.my_data_rl:// 我的资料
                 //作废
-              //  startActivityForResult(new Intent(getActivity(), BasicInfoEditActivity.class), 1);
+                //  startActivityForResult(new Intent(getActivity(), BasicInfoEditActivity.class), 1);
                 break;
             case my_friend_rl://我的朋友圈
                 setChangerRemain(true);
@@ -330,7 +332,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
                 startActivity(new Intent(getActivity(), LocalVideoActivity.class));
                 break;
             case R.id.setting_rl:// 设置
-                startActivity(new Intent(getActivity(), SettingActivity.class));
+                  startActivity(new Intent(getActivity(), SettingActivity.class));
                 break;
             case R.id.app_scan_code_rl://APP二维码
                 ImageView imageView = new ImageView(getActivity());

+ 4 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/RoomInfoActivity.java

@@ -553,7 +553,10 @@ public class RoomInfoActivity extends BaseActivity {
                                                   }
                                               }
                                           }
-                                          updata(dialog, h, strId.toString());
+                                          if (strId.length() > 0)
+                                              updata(dialog, h, strId.toString());
+//                                          else
+//                                              ToastUtil.showToast(ct, "请选择添加人员");
                                       }
                                   }
         );

+ 65 - 81
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ToastUtil.java

@@ -11,9 +11,9 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 /**
- * 
  * @项目名称: SkWeiChat-Baidu
  * @包名: com.xzjmyk.pm.activity.util
  * @作者:王阳
@@ -25,94 +25,78 @@ import com.xzjmyk.pm.activity.R;
  * @修改的内容: 新增限定EditText字数弹出的toast
  */
 public class ToastUtil {
-	/**
-	 * 设置EditText的字数限制
-	 * 
-	 * @param mTextEdit
-	 * @param maxTextNum
-	 *            最大字符数
-	 */
-	public static void addEditTextNumChanged(final Context context,final EditText mTextEdit, final int maxTextNum) {
+    /**
+     * 设置EditText的字数限制
+     *
+     * @param mTextEdit
+     * @param maxTextNum 最大字符数
+     */
+    public static void addEditTextNumChanged(final Context context, final EditText mTextEdit, final int maxTextNum) {
 
-		mTextEdit.addTextChangedListener(new TextWatcher() {
-			private CharSequence temp;
-			private boolean isEdit = true;
-			private int selectionStart;
-			private int selectionEnd;
+        mTextEdit.addTextChangedListener(new TextWatcher() {
+            private CharSequence temp;
+            private boolean isEdit = true;
+            private int selectionStart;
+            private int selectionEnd;
 
-			@Override
-			public void onTextChanged(CharSequence s, int start, int before, int count) {
-				temp = s;
-			}
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                temp = s;
+            }
 
-			@Override
-			public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
-			}
+            }
 
-			@Override
-			public void afterTextChanged(Editable s) {
-				selectionStart = mTextEdit.getSelectionStart();
-				selectionEnd = mTextEdit.getSelectionEnd();
-				Log.i("gongbiao1", "" + selectionStart);
-				if (temp.length() > maxTextNum) {
-					Toast toast = Toast.makeText(context, "只能输入"+maxTextNum+"个字符哦", 0);
-					toast.setGravity(Gravity.CENTER,0,0);
-					TextView tv=new TextView(context);
-					tv.setText("只能输入"+maxTextNum+"个字符哦");
-					tv.setTextColor(Color.RED); 
-					toast.setView(tv);
-					toast.show();
-					s.delete(selectionStart - 1, selectionEnd);
-					int tempSelection = selectionStart;
-					mTextEdit.setText(s);
-					mTextEdit.setSelection(tempSelection);
-				}
-			}
-		});
-	}
+            @Override
+            public void afterTextChanged(Editable s) {
+                selectionStart = mTextEdit.getSelectionStart();
+                selectionEnd = mTextEdit.getSelectionEnd();
+                Log.i("gongbiao1", "" + selectionStart);
+                if (temp.length() > maxTextNum) {
+                    Toast toast = Toast.makeText(context, "只能输入" + maxTextNum + "个字符哦", 0);
+                    toast.setGravity(Gravity.CENTER, 0, 0);
+                    TextView tv = new TextView(context);
+                    tv.setText("只能输入" + maxTextNum + "个字符哦");
+                    tv.setTextColor(Color.RED);
+                    toast.setView(tv);
+                    toast.show();
+                    s.delete(selectionStart - 1, selectionEnd);
+                    int tempSelection = selectionStart;
+                    mTextEdit.setText(s);
+                    mTextEdit.setSelection(tempSelection);
+                }
+            }
+        });
+    }
 
-	public static void showErrorNet(Context context) {
-		if (context == null) {
-			return;
-		}
-		showToast(context, R.string.net_exception);
-	}
+    public static void showErrorNet(Context context) {
+        if (context == null) {
+            return;
+        }
+        showToast(context, R.string.net_exception);
+    }
 
-	public static void showErrorData(Context context) {
-		if (context == null) {
-			return;
-		}
-		showToast(context, R.string.data_exception);
-	}
+    public static void showErrorData(Context context) {
+        if (context == null) {
+            return;
+        }
+        showToast(context, R.string.data_exception);
+    }
 
-	//
-	// public static void showFrequent(Context context) {
-	// if (context == null) {
-	// return;
-	// }
-	// showNormalToast(context, R.string.request_busy);
-	// }
-	//
-	// public static void showNoMoreData(Context context) {
-	// if (context == null) {
-	// return;
-	// }
-	// showNormalToast(context, R.string.no_more_data);
-	// }
+    public static void showToast(Context context, String message) {
+        if (context == null) {
+            return;
+        }
+        Crouton.makeText(context, message);
+    }
 
-	public static void showToast(Context context, String message) {
-		if (context == null) {
-			return;
-		}
-		Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
-	}
-
-	public static void showToast(Context context, int resId) {
-		if (context == null) {
-			return;
-		}
-		Toast.makeText(context, context.getString(resId), Toast.LENGTH_SHORT).show();
-	}
+    public static void showToast(Context context, int resId) {
+        if (context == null) {
+            return;
+        }
+        Crouton.makeText(context, context.getString(resId));
+    }
 
 }

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

@@ -68,6 +68,7 @@
         android:divider="#00000000"
         android:dividerHeight="15dp"
         android:dividerPadding="5dp"
+        android:scrollingCache="false"
         android:fadingEdge="none"
         android:listSelector="#00000000"
         android:padding="1dp"

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

@@ -17,5 +17,6 @@
         android:divider="@null"
         android:fadingEdge="none"
         android:listSelector="#00000000"
+        android:scrollingCache="false"
         android:scrollbars="none"/>
 </RelativeLayout>

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

@@ -1,9 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@drawable/bg_main">
-
+    android:layout_height="match_parent">
     <ProgressBar
         android:id="@+id/progress_bar"
         android:layout_width="wrap_content"
@@ -14,10 +12,11 @@
         android:id="@+id/list_notice"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="@drawable/bg_main"
         android:divider="@null"
+        android:cacheColorHint="#00000000"
         android:fadingEdge="none"
         android:listSelector="#00000000"
+        android:scrollingCache="false"
         android:scrollbars="none">
     </com.handmark.pulltorefresh.library.PullToRefreshListView>
 </RelativeLayout>

+ 2 - 2
WeiChat/src/main/res/layout/act_task_add.xml

@@ -24,6 +24,7 @@
             android:background="@color/light_grey" />
 
         <RelativeLayout
+            android:id="@+id/task_startime_rl"
             style="@style/form_relative_customer"
             android:layout_height="50dp">
 
@@ -35,12 +36,11 @@
                 android:layout_marginLeft="10dp"
                 android:text="截止时间" />
 
-            <EditText
+            <TextView
                 android:id="@+id/et_task_startime"
                 style="@style/form_relative_right_text"
                 android:layout_marginLeft="10dp"
                 android:layout_toRightOf="@+id/tv_task_startime"
-                android:clickable="true"
                 android:hint="输入截止时间" />
 
         </RelativeLayout>

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

@@ -12,5 +12,6 @@
         android:layout_height="match_parent"
         android:background="@color/item_color2"
         android:divider="@color/item_line"
+        android:scrollingCache="false"
         android:dividerHeight="10dp" />
 </RelativeLayout>

+ 2 - 3
WeiChat/src/main/res/layout/activity_basic_info.xml

@@ -64,8 +64,8 @@
                     <ImageView
                         android:id="@+id/avatar_img"
                         android:layout_width="80dp"
-                        android:layout_centerHorizontal="true"
                         android:layout_height="80dp"
+                        android:layout_centerHorizontal="true"
                         android:background="@drawable/account_avatar_bg"
                         android:contentDescription="@string/app_name"
                         android:src="@drawable/avatar_normal" />
@@ -182,8 +182,7 @@
         <com.xzjmyk.pm.activity.view.DataLoadView
             android:id="@+id/data_load_view"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:visibility="gone" />
+            android:layout_height="match_parent" />
     </RelativeLayout>
 
 </LinearLayout>

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

@@ -12,6 +12,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_above="@+id/bottom_view"
+        android:scrollingCache="false"
         ptr:ptrAnimationStyle="flip"
         ptr:ptrDrawableEnd="@drawable/default_ptr_rotate"
         ptr:ptrDrawableStart="@drawable/default_ptr_flip"

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

@@ -18,6 +18,7 @@
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="5"
+        android:scrollingCache="false"
         android:dividerHeight="1dp"
         android:divider="@color/item_line"
          />

+ 3 - 2
WeiChat/src/main/res/layout/activity_select.xml

@@ -10,6 +10,7 @@
         android:layout_width="match_parent"
         android:layout_height="48dp"
         android:background="@drawable/bg_bar"
+        android:focusable="true"
         android:orientation="horizontal"
         android:paddingBottom="5dp"
         android:paddingLeft="15dp"
@@ -18,8 +19,8 @@
 
         <com.xzjmyk.pm.activity.view.ClearEditText
             android:id="@+id/search_edit"
-            android:layout_width="fill_parent"
-            android:layout_height="fill_parent"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
             android:layout_centerVertical="true"
             android:background="@drawable/search_input"
             android:drawableLeft="@drawable/search"

+ 46 - 0
WeiChat/src/main/res/layout/alert_dialog.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_horizontal"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:id="@+id/pop_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:gravity="center_horizontal"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/phone_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:padding="10dp"
+            android:text="sss" />
+
+        <Button
+            android:id="@+id/btn_take_photo"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/play_phone"
+            android:textStyle="bold" />
+
+        <Button
+            android:id="@+id/btn_pick_photo"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/send_mail"
+            android:textStyle="bold" />
+
+        <Button
+            android:id="@+id/btn_cancel"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:text="取消"
+            android:textColor="#ffffff"
+            android:textStyle="bold" />
+    </LinearLayout>
+</RelativeLayout>

+ 43 - 0
WeiChat/src/main/res/layout/fragment_contact.xml

@@ -0,0 +1,43 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@drawable/bg_main">
+
+    <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/pull_refresh_list"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:divider="#00000000"
+    android:dividerHeight="0dip"
+    android:listSelector="@android:color/transparent"
+    ptr:ptrAnimationStyle="flip"
+    ptr:ptrDrawableEnd="@drawable/default_ptr_rotate"
+    ptr:ptrDrawableStart="@drawable/default_ptr_flip"
+    ptr:ptrHeaderTextColor="@color/refresh"
+    ptr:ptrMode="both"
+    ptr:ptrOverScroll="false"
+    ptr:ptrScrollingWhileRefreshingEnabled="true"
+    ptr:ptrShowIndicator="false" />
+
+
+    <TextView
+        android:id="@+id/text_dialog"
+        android:layout_width="80.0dip"
+        android:layout_height="80.0dip"
+        android:layout_centerInParent="true"
+        android:layout_gravity="center"
+        android:background="@color/black_trans_99"
+        android:gravity="center"
+        android:textColor="#ffffffff"
+        android:textSize="30.0dip"
+        android:visibility="invisible" />
+
+    <com.xzjmyk.pm.activity.sortlist.SideBar
+        android:id="@+id/sidebar"
+        android:layout_width="30.0dip"
+        android:layout_height="match_parent"
+        android:layout_alignParentRight="true"
+        android:layout_gravity="right|center"
+        android:layout_marginBottom="10dp"
+        android:layout_marginTop="120dp" />
+</RelativeLayout>

+ 5 - 2
WeiChat/src/main/res/layout/fragment_message.xml

@@ -31,6 +31,7 @@
     </RelativeLayout>
 
     <com.xzjmyk.pm.activity.view.PullToRefreshSlideListView
+        xmlns:slide="http://schemas.android.com/apk/res-auto"
         android:id="@+id/pull_refresh_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -42,7 +43,9 @@
         app:ptrOverScroll="false"
         app:ptrScrollingWhileRefreshingEnabled="true"
         app:ptrShowIndicator="false"
-        app:slideMode="right"
-        app:slideRightAction="reveal" />
+        slide:slideAnimationTime="200"
+        slide:slideLeftAction="scroll"
+        slide:slideMode="right"
+        slide:slideRightAction="scroll"/>
 
 </LinearLayout>

+ 13 - 12
WeiChat/src/main/res/layout/fragment_works.xml

@@ -41,24 +41,23 @@
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
-            android:layout_marginTop="7dp"
             android:background="@color/item_line" />
 
         <RelativeLayout
-            android:id="@+id/rl_uas_sys"
+            android:id="@+id/my_client_rl"
             style="@style/IMTbleLine">
 
             <TextView
+                android:id="@+id/tv_crm"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_centerVertical="true"
-                android:drawableLeft="@drawable/set_video_u"
+                android:drawableLeft="@drawable/title_set_u"
                 android:drawablePadding="10dp"
                 android:gravity="center"
-                android:text="办公自动化"
+                android:text="客户关系管理"
                 android:textColor="@color/text_main"
-                android:textSize="14sp"
-                android:id="@+id/tv_oa" />
+                android:textSize="14sp" />
 
             <ImageView
                 android:layout_width="@dimen/next_width"
@@ -70,26 +69,27 @@
                 android:contentDescription="@string/app_name" />
         </RelativeLayout>
 
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
             android:background="@color/item_line" />
 
         <RelativeLayout
-            android:id="@+id/my_client_rl"
+            android:id="@+id/rl_uas_sys"
             style="@style/IMTbleLine">
 
             <TextView
+                android:id="@+id/tv_oa"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_centerVertical="true"
-                android:drawableLeft="@drawable/title_set_u"
+                android:drawableLeft="@drawable/set_video_u"
                 android:drawablePadding="10dp"
                 android:gravity="center"
-                android:text="客户管理"
+                android:text="行政办公"
                 android:textColor="@color/text_main"
-                android:textSize="14sp"
-                android:id="@+id/tv_crm" />
+                android:textSize="14sp" />
 
             <ImageView
                 android:layout_width="@dimen/next_width"
@@ -101,6 +101,7 @@
                 android:contentDescription="@string/app_name" />
         </RelativeLayout>
 
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
@@ -148,7 +149,7 @@
                 android:drawableLeft="@drawable/f_u"
                 android:drawablePadding="10dp"
                 android:gravity="center"
-                android:text="商品查询"
+                android:text="优软商城"
                 android:textColor="@color/text_main"
                 android:textSize="14sp" />
 

+ 2 - 5
WeiChat/src/main/res/layout/header_fragment_contact.xml

@@ -20,7 +20,6 @@
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:layout_centerVertical="true"
-            android:layout_marginLeft="10dp"
             android:layout_marginRight="10dp"
             android:background="@drawable/search_input"
             android:drawableLeft="@drawable/search"
@@ -32,6 +31,7 @@
     </RelativeLayout>
 
     <LinearLayout
+        android:id="@+id/click_ll"
         android:layout_width="match_parent"
         android:layout_height="80dp"
         android:gravity="center"
@@ -79,8 +79,5 @@
         android:layout_height="2px"
         android:background="@color/item_line" />
 
-    <ExpandableListView
-        android:id="@+id/expandablelistview"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
+
 </LinearLayout>

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

@@ -34,7 +34,7 @@
         android:gravity="left|top"
         android:text="1月12日 19:40"
         android:textColor="@color/text_hine"
-        android:textSize="@dimen/text_hine" />
+        android:textSize="@dimen/text_min" />
 
     <TextView
         android:id="@+id/content_tv"

+ 0 - 2
WeiChat/src/main/res/layout/item_card_notice.xml

@@ -3,7 +3,6 @@
     android:layout_width="match_parent"
     android:layout_height="@dimen/item_me_height"
     android:orientation="vertical">
-
     <!--<TextView-->
     <!--android:id="@+id/tv_title"-->
     <!--android:layout_width="match_parent"-->
@@ -14,7 +13,6 @@
     <!--android:textColor="@color/black" />-->
 
     <RelativeLayout
-        android:layout_marginTop="@dimen/line_big"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingLeft="27dp"

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

@@ -9,6 +9,7 @@
          android:layout_height="wrap_content"
          android:divider="@null"
          android:listSelector="#00000000"
+         android:scrollingCache="false"
          android:scrollbars="none" >
      </com.handmark.pulltorefresh.library.PullToRefreshListView>
 </RelativeLayout>

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

@@ -11,6 +11,7 @@
         android:layout_below="@+id/tv_dispaly_top"
         android:divider="@null"
         android:fadingEdge="none"
+        android:scrollingCache="false"
         android:listSelector="#00000000"
         android:scrollbars="none"></com.handmark.pulltorefresh.library.PullToRefreshListView>
 </RelativeLayout>

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

@@ -7,6 +7,11 @@
         <item>转为新客户</item>
         <item>关联已有客户</item>
     </string-array>
+    <string name="add_summed">请添加工作总结!</string>
+    <string name="play_phone">拨打电话</string>
+    <string name="send_mail">发送短信</string>
+    <string name="add_plan">请添加工作计划!</string>
+    <string name="add_learned">请添加心得体会!</string>
     <string name="networks_out">网络未连接!</string>
     <string name="session_out">会话已断开</string>
     <string name="crm_sale_num">****元  (第**名)</string>

+ 8 - 0
WeiChat/src/main/res/values/styles.xml

@@ -751,6 +751,7 @@
         <item name="android:headerDividersEnabled">false</item>
         <item name="android:footerDividersEnabled">true</item>
         <item name="android:scrollbars">none</item>
+        <item name="android:scrollingCache">false</item>
         <item name="android:listSelector">@android:color/transparent</item>
     </style>
     <!--单据列表显示style-->
@@ -760,6 +761,7 @@
         <item name="android:layout_marginTop">10dp</item>
         <item name="android:divider">#00000000</item>
         <item name="android:dividerHeight">10dp</item>
+        <item name="android:scrollingCache">false</item>
         <item name="android:headerDividersEnabled">false</item>
         <item name="android:footerDividersEnabled">true</item>
         <item name="android:scrollbars">none</item>
@@ -1025,4 +1027,10 @@
         <item name="android:textSize">14sp</item>
     </style>
 
+    <style name="AnimBottom">
+        <item name="android:windowEnterAnimation">@anim/popup_enter</item>
+        <item name="android:windowExitAnimation">@anim/popup_exit</item>
+    </style>
+
+
 </resources>