Browse Source

新闻,公告,通知分页显示完成及下拉备份

FANGLH 9 years ago
parent
commit
1b245604fd
42 changed files with 860 additions and 610 deletions
  1. 4 16
      WeiChat/src/main/AndroidManifest.xml
  2. 6 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/AllSubscriptionAdapter.java
  3. 6 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/MySubscriptionAdapter.java
  4. 33 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/commoninterface/ChangeDataSetInterface.java
  5. 15 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  6. 24 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ManageAllSubscriptionActivity.java
  7. 37 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubcribeManageActivity.java
  8. 6 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessAddActivity.java
  9. 7 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerAddActivity.java
  10. 8 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerListActivity.java
  11. 10 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  12. 8 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportPlanActivity.java
  13. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddLogActivity.java
  14. 8 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java
  15. 0 179
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmReceiver.java
  16. 94 186
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java
  17. 88 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/ChangeMobileActivity.java
  18. 5 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java
  19. 105 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SaveMeetActivity.java
  20. 12 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java
  21. 20 24
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  22. 70 63
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java
  23. 4 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionMyFragment.java
  24. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java
  25. 39 23
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java
  26. 106 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmManage.java
  27. 26 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmReceiver.java
  28. 45 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/NotificationManage.java
  29. 23 27
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/SwitchView.java
  30. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/Constants.java
  31. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/NoSlideViewpager.java
  32. BIN
      WeiChat/src/main/res/drawable-hdpi/ic_subscription_number.png
  33. BIN
      WeiChat/src/main/res/drawable-xhdpi/ic_subscription_number.png
  34. BIN
      WeiChat/src/main/res/drawable-xxhdpi/ic_subscription_number.png
  35. 12 0
      WeiChat/src/main/res/layout/activity_manage_all_subs.xml
  36. 7 27
      WeiChat/src/main/res/layout/activity_oa_alarma.xml
  37. 1 1
      WeiChat/src/main/res/layout/activity_oamain.xml
  38. 4 0
      WeiChat/src/main/res/layout/activity_select.xml
  39. 6 3
      WeiChat/src/main/res/layout/fragment_all_subscription.xml
  40. 1 0
      WeiChat/src/main/res/layout/layout_all_subscription_list.xml
  41. 1 0
      WeiChat/src/main/res/layout/layout_my_subscribe_list.xml
  42. 11 1
      WeiChat/src/main/res/values/strings.xml

+ 4 - 16
WeiChat/src/main/AndroidManifest.xml

@@ -3,7 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     package="com.xzjmyk.pm.activity"
     android:versionCode="69"
-    android:versionName="5.5.5.1">
+    android:versionName="5.5.5">
 
     <uses-sdk
         android:minSdkVersion="11"
@@ -213,6 +213,7 @@
         <activity
             android:name=".ui.erp.activity.SubcribeManageActivity"
             android:theme="@style/StyledIndicators" />
+        <activity android:name=".ui.erp.activity.ManageAllSubscriptionActivity"/>
         <!-- 群聊 -->
         <activity android:name=".ui.groupchat.SelectContactsActivity" />
 
@@ -369,16 +370,8 @@
                 <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
             </intent-filter>
         </receiver>
-        <!-- oA模块考勤提醒功能本地推送 -->
-        <receiver android:name=".ui.erp.activity.oa.AlarmReceiver"/>
-       <!-- <receiver android:name=".ui.erp.activity.oa.AlarmReceiver">
-            <intent-filter>
-                <action android:name="android.intent.action.BOOT_COMPLETED"/>
-            </intent-filter>
-        </receiver>-->
-        <!-- oA模块自动打卡功能本地推送 -->
-        <receiver android:name=".ui.erp.activity.oa.AutoSignReceiver" />
-
+        <!-- oA模块提醒功能本地推送 -->
+        <receiver android:name=".ui.erp.util.alarm.AlarmReceiver" />
         <!-- Push服务接收客户端发送的各种请求 -->
         <receiver
             android:name="com.baidu.android.pushservice.RegistrationReceiver"
@@ -594,11 +587,6 @@
             android:name=".ui.erp.activity.oa.AlarmaActivity"
             android:label="签到提醒"
             android:theme="@style/OAThemeSignin" />
-
-        <activity
-            android:name=".ui.erp.activity.oa.SignremindActivity"
-            android:label="签到提醒"
-            android:theme="@style/OAThemeSignin" />
         <activity
             android:name=".ui.erp.activity.oa.MeetingActivity"
             android:label="会议管理"

+ 6 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/AllSubscriptionAdapter.java

@@ -46,11 +46,11 @@ public class AllSubscriptionAdapter extends BaseAdapter{
         mImageIds = new ArrayList<>();
         mDbManager = new DBManager(mContext);
         progressDialog = CustomProgressDialog.createDialog(mContext);
-        mImageIds.add(R.drawable.ic_subscription_icon1);
-        mImageIds.add(R.drawable.ic_subscription_icon2);
-        mImageIds.add(R.drawable.ic_subscription_icon3);
-        mImageIds.add(R.drawable.ic_subscription_icon4);
-        mImageIds.add(R.drawable.ic_subscription_icon5);
+//        mImageIds.add(R.drawable.ic_subscription_icon1);
+//        mImageIds.add(R.drawable.ic_subscription_icon2);
+//        mImageIds.add(R.drawable.ic_subscription_icon3);
+//        mImageIds.add(R.drawable.ic_subscription_icon4);
+//        mImageIds.add(R.drawable.ic_subscription_icon5);
     }
 
 
@@ -84,7 +84,7 @@ public class AllSubscriptionAdapter extends BaseAdapter{
             viewHolder = (ViewHolder) convertView.getTag();
         }
 
-        viewHolder.subImageView.setImageResource(mImageIds.get(position % 5));
+//        viewHolder.subImageView.setImageResource(mImageIds.get(position % 5));
         viewHolder.subNameTextView.setText(mSubscriptionNumbers.get(position).getTitle());
         if (mSubscriptionNumbers.get(position).getStatus()== 1){
             viewHolder.applyTextView.setText("已订阅");

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

@@ -48,11 +48,11 @@ public class MySubscriptionAdapter extends BaseAdapter {
         mDbManager = new DBManager(mContext);
         progressDialog = CustomProgressDialog.createDialog(mContext);
         mImageIds = new ArrayList<>();
-        mImageIds.add(R.drawable.ic_subscription_icon1);
-        mImageIds.add(R.drawable.ic_subscription_icon2);
-        mImageIds.add(R.drawable.ic_subscription_icon3);
-        mImageIds.add(R.drawable.ic_subscription_icon4);
-        mImageIds.add(R.drawable.ic_subscription_icon5);
+//        mImageIds.add(R.drawable.ic_subscription_icon1);
+//        mImageIds.add(R.drawable.ic_subscription_icon2);
+//        mImageIds.add(R.drawable.ic_subscription_icon3);
+//        mImageIds.add(R.drawable.ic_subscription_icon4);
+//        mImageIds.add(R.drawable.ic_subscription_icon5);
     }
 
     @Override
@@ -84,7 +84,7 @@ public class MySubscriptionAdapter extends BaseAdapter {
         }else {
             viewHolder = (ViewHolder) view.getTag();
         }
-        viewHolder.subscribeIv.setImageResource(mImageIds.get(i % 5));
+//        viewHolder.subscribeIv.setImageResource(mImageIds.get(i % 5));
         viewHolder.titleTv.setText(mPersonalSubscriptionBeans.get(i).getTITLE());
         if (mPersonalSubscriptionBeans.get(i).getISAPPLED() == -1){
             viewHolder.applyTv.setText("-退订");

+ 33 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/commoninterface/ChangeDataSetInterface.java

@@ -0,0 +1,33 @@
+package com.xzjmyk.pm.activity.commoninterface;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * listview数据源操作接口
+ * Created by RaoMeng on 2016/10/28.
+ */
+
+public interface ChangeDataSetInterface<T> {
+    void setDatas(List<T> datas);
+
+    List<T> getDatas();
+
+    boolean AddItem(T data);
+  
+    boolean AddItem(int position , T data);
+  
+    /** 
+     * deprecate 
+     * 遍历检索效率低,且实际意义不大。 
+     * */  
+    boolean DeleteItem(T data);
+  
+    boolean DeleteItem(int position);  
+  
+    void Clear(); 
+    
+    void AddAll(LinkedList<T> datas);
+    
+    void ReplaceAll(LinkedList<T> datas);
+} 

+ 15 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -391,7 +391,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
         super.onCreate(savedInstanceState);
         getSupportActionBar().setDisplayShowHomeEnabled(false);
         getSupportActionBar().setDisplayHomeAsUpEnabled(false);
-        /**@注释:主页布局文件 */
+      
         setContentView(R.layout.activity_main);
         SIP_USERNAME = MyApplication.getInstance().mLoginUser.getUserId();
         String host = mConfig.MeetingHost;
@@ -463,6 +463,20 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                 Log.d("wang", "MainActivity....解锁");
             }
         });
+        
+        
+        //查询数据库,取出中文名:
+//        DBManager  dbManager = new DBManager(ct);
+//        List<EmployeesEntity> db = dbManager.select_getEmployee(
+//                new String[]{CommonUtil.getSharedPreferences(ct, "erp_master"),
+//                        CommonUtil.getSharedPreferences(ct, "erp_username")}
+//                , "whichsys=? and em_code=? ");
+//        if (!ListUtils.isEmpty(db)){
+//            if (!StringUtils.isEmpty(db.get(0).getEM_NAME())){
+//                CommonUtil.setSharedPreferences(ct,"erp_emname",db.get(0).getEM_NAME());
+//            }
+//        }
+//        dbManager.closeDB();
     }
 
     public void updateVersion() {

+ 24 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/ManageAllSubscriptionActivity.java

@@ -0,0 +1,24 @@
+package com.xzjmyk.pm.activity.ui.erp.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.util.Constants;
+
+/**
+ * Created by RaoMeng on 2016/10/28.
+ */
+public class ManageAllSubscriptionActivity extends BaseActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        getSupportActionBar().setTitle("未订阅管理");
+        setContentView(R.layout.activity_manage_all_subs);
+
+        Intent intent = new Intent();
+        setResult(Constants.RESULT_MANAGE_ALL_SUBSCRIPTION,intent);
+    }
+}

+ 37 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubcribeManageActivity.java

@@ -1,7 +1,11 @@
 package com.xzjmyk.pm.activity.ui.erp.activity;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.widget.Toast;
 
 import com.viewpagerindicator.TabPageIndicator;
 import com.viewpagerindicator.UnderlinePageIndicator;
@@ -11,6 +15,7 @@ import com.xzjmyk.pm.activity.ui.erp.adapter.SubscribeManegeVpAdapter;
 import com.xzjmyk.pm.activity.ui.erp.fragment.BaseFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.SubscriptionAllFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.SubscriptionMyFragment;
+import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.view.NoSlideViewpager;
 
 import java.util.ArrayList;
@@ -28,6 +33,7 @@ public class SubcribeManageActivity extends BaseActivity{
     private SubscribeManegeVpAdapter mSubscribeManegeVpAdapter;
     private NoSlideViewpager mViewPager;
     private List<String> mTitleStrings;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -56,4 +62,35 @@ public class SubcribeManageActivity extends BaseActivity{
         mUnderlinePageIndicator.setViewPager(mViewPager);
         mTabPageIndicator.setOnPageChangeListener(mUnderlinePageIndicator);
     }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_apply_subscribe,menu);
+        MenuItem item = menu.getItem(0);
+        item.setTitle("整理");
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.subscribe_apply){
+            Toast.makeText(SubcribeManageActivity.this, "订阅整理", Toast.LENGTH_SHORT).show();
+            Intent intent = new Intent();
+            intent.setClass(this,ManageAllSubscriptionActivity.class);
+            startActivityForResult(intent, Constants.REQUEST_MANAGE_ALL_SUBSCRIPTON);
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == Constants.REQUEST_MANAGE_ALL_SUBSCRIPTON
+                && resultCode == Constants.RESULT_MANAGE_ALL_SUBSCRIPTION
+                && data != null){
+            mTabPageIndicator.setCurrentItem(0);
+            mUnderlinePageIndicator.setCurrentItem(0);
+            SubscriptionAllFragment item = (SubscriptionAllFragment) mSubscribeManegeVpAdapter.getItem(0);
+            item.getDbSubsData();
+        }
+    }
 }

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

@@ -124,7 +124,12 @@ public class BusinessAddActivity extends BaseActivity implements View.OnClickLis
     private void initView() {
         ViewUtils.inject(this);
         getSupportActionBar().setTitle("创建商机");
-        et_business_enterMan.setText(MyApplication.getInstance().mLoginUser.getNickName());
+        if (!StringUtils.isEmpty(CommonUtil.getSharedPreferences(ct,"erp_emname"))){
+            et_business_enterMan.setText(CommonUtil.getSharedPreferences(ct,"erp_emname")); 
+        }else{
+            et_business_enterMan.setText(MyApplication.getInstance().mLoginUser.getNickName());
+        }
+       
     }
 
     @Override

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

@@ -186,7 +186,12 @@ public class CustomerAddActivity extends BaseActivity implements View.OnClickLis
     }
 
     private void initData() {
-        et_cu_sellername.setText(MyApplication.getInstance().mLoginUser.getNickName().trim());
+        if (!StringUtils.isEmpty(CommonUtil.getSharedPreferences(ct, "erp_emname"))) {
+            et_cu_sellername.setText(CommonUtil.getSharedPreferences(ct, "erp_emname").trim());
+        } else {
+            et_cu_sellername.setText(MyApplication.getInstance().mLoginUser.getNickName().trim());
+        }
+
         if (cu_code != null) {
             et_cu_code.setText(cu_code);
         } else {
@@ -209,7 +214,7 @@ public class CustomerAddActivity extends BaseActivity implements View.OnClickLis
             mContact = intent.getStringExtra("contact");
             mPosition = intent.getStringExtra("position");
             mTelephone = intent.getStringExtra("telephone");
-            et_cu_sellercode = CommonUtil.getSharedPreferences(ct,"erp_username");
+            et_cu_sellercode = CommonUtil.getSharedPreferences(ct, "erp_username");
             if ("已提交".equals(cu_status)) {
                 disableEdit(false);
             } else {

+ 8 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerListActivity.java

@@ -41,6 +41,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 
@@ -101,7 +102,7 @@ public class CustomerListActivity extends BaseActivity implements View.OnClickLi
         ct = this;
         ViewUtils.inject(this);
         getSupportActionBar().setTitle("客户");
-        tv_name.setText(MyApplication.getInstance().mLoginUser.getNickName());
+       
         loadParams(3);
 
         mAdapter = new BussinessDetailAdapter(ct, jsonArray);
@@ -170,16 +171,15 @@ public class CustomerListActivity extends BaseActivity implements View.OnClickLi
                         CommonUtil.getSharedPreferences(ct, "erp_username")}
                 , "whichsys=? and em_code=? ");
         if (!ListUtils.isEmpty(db)) {
-            for (EmployeesEntity model : db) {
-                Log.i(TAG, "initData:" + model.getEM_DEPART());
-                Log.i(TAG, "initData:" + model.getEM_POSITION());
-                Log.i(TAG, "initData:" + model.getCOMPANY());
-                Log.i(TAG, "initData:" +model.getEm_IMID()  );
-
-            }
             tv_position.setText(db.get(0).getEM_POSITION());
             tv_department.setText(db.get(0).getEM_DEFAULTORNAME() + "|");
             AvatarHelper.getInstance().displayAvatar(String.valueOf(db.get(0).getEm_IMID()), iv_head, false);
+            if (!StringUtils.isEmpty(db.get(0).getEM_NAME())){
+                tv_name.setText(db.get(0).getEM_NAME());
+            }else{
+                tv_name.setText(MyApplication.getInstance().mLoginUser.getNickName()); 
+            }
+         
         }
     }
 

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

@@ -268,6 +268,12 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     }
 
     private void sendHttpResquest(int what, String code) {
+        String emname="";
+        if (!StringUtils.isEmpty(CommonUtil.getSharedPreferences(ct, "erp_emname"))) {
+            emname=CommonUtil.getSharedPreferences(ct, "erp_emname").trim();
+        } else {
+            emname=MyApplication.getInstance().mLoginUser.getNickName().trim();
+        }
         String formStore = "";
         if (tv_date_start.testValidity() && tv_date_end.testValidity()
                 && tv_customer_login.testValidity() && tv_linksman_login.testValidity()
@@ -309,7 +315,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                             "ENTERING" +
                             "\",\n" +
                             "\"vr_recorder\":\"" +
-                            MyApplication.getInstance().mLoginUser.getNickName() +
+                            emname +
                             "\",\n" +
                             //TODO 修改
                             "\"vr_status\":\"" +
@@ -331,7 +337,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         Map<String, Object> params = new HashMap<>();
         params.put("formStore", formStore);
         params.put("caller", "VisitRecord");
-        String param1 = "{\"pl_detno\":1,\"pl_name\":" + MyApplication.getInstance().mLoginUser.getNickName() + ",\"pl_vrid\":" + mVrId + "}";
+        String param1 = "{\"pl_detno\":1,\"pl_name\":" + emname + ",\"pl_vrid\":" + mVrId + "}";
         params.put("param1", "[]");
         params.put("param2", "[]");
         params.put("param3", param1);
@@ -430,6 +436,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                 tv_customer_login.setText(object.containsKey("CU_NAME") ? object.getString("CU_NAME") : " ");
                 tv_linksman_login.setText(object.containsKey("CU_CONTACT") ? object.getString("CU_CONTACT") : " ");
                 tv_address_login.setText(object.containsKey("CU_ADD1") ? object.getString("CU_ADD1") : " ");
+                tv_visit_steps.setText(object.containsKey("CU_NICHESTEP") ? object.getString("CU_NICHESTEP") : " ");
 
             }
         } else if (requestCode == 0x23 && resultCode == 0x20) {
@@ -527,6 +534,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                             vp_code = array.getJSONObject(i).getString("CU_CODE");
                         tv_linksman_login.setText(array.getJSONObject(i).getString("CU_CONTACT"));
                         tv_address_login.setText(array.getJSONObject(i).getString("CU_ADD1"));
+                        tv_visit_steps.setText(array.getJSONObject(i).getString("CU_NICHESTEP"));
                     }
                 }
             }

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

@@ -223,6 +223,12 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
     };
 
     private void sendHttpResquest(int what) {
+        String emname="";
+        if (!StringUtils.isEmpty(CommonUtil.getSharedPreferences(ct, "erp_emname"))) {
+            emname=CommonUtil.getSharedPreferences(ct, "erp_emname").trim();
+        } else {
+            emname=MyApplication.getInstance().mLoginUser.getNickName().trim();
+        }
         String formStore = "";
         if (tv_date_select.testValidity() && tv_date_end.testValidity()
                 && tv_customer_login.testValidity() && tv_linksman_login.testValidity()
@@ -256,10 +262,10 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
                     CommonUtil.getNoMarkEditText(tv_linksman_login) +
                     "\",\n" +
                     "\"vp_visitman\":\"" +
-                    MyApplication.getInstance().mLoginUser.getNickName() +
+                   emname +
                     "\",\n" +
                     "\"vp_recordman\":\"" +
-                    MyApplication.getInstance().mLoginUser.getNickName() +
+                   emname +
                     "\",\n" +
                     "\"vp_status\":\"" +
                     "未拜访" +

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

@@ -132,19 +132,19 @@ public class AddLogActivity extends BaseActivity {
         }
         StringBuilder builder = new StringBuilder();
         builder.append(type_tv.getText().toString() + ":\n");
-        if (sum_tv.getText().toString().length() > 0) {
+        if (!StringUtils.isEmpty(sum_tv.getText().toString())) {
             builder.append("  工作总结:\n     " + sum_tv.getText().toString() + "\n");
         } else {
             Crouton.makeText(ct, R.string.add_summed);
             return;
         }
-        if (plan_tv.getText().toString().length() > 0) {
+        if (!StringUtils.isEmpty(plan_tv.getText().toString())) {
             builder.append("  工作计划:\n     " + plan_tv.getText().toString() + "\n");
         } else {
             Crouton.makeText(ct, R.string.add_plan);
             return;
         }
-        if (learned_tv.getText().toString().length() > 0) {
+        if (!StringUtils.isEmpty(learned_tv.getText().toString())) {
             builder.append("  心得体会:\n     " + learned_tv.getText().toString() + "\n");
         } else {
             Crouton.makeText(ct, R.string.add_learned);

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

@@ -64,7 +64,7 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
     private String baseUrl;
     ArrayList<Employees> entities = null;//成员
     //已选择参会人员存放入listpeoplechoose
-   // ArrayList<Employees> listpeoplechoose = new ArrayList<>();
+    // ArrayList<Employees> listpeoplechoose = new ArrayList<>();
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -162,7 +162,10 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
 
 
     private void initView() {
-        user_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
+        String name = CommonUtil.getSharedPreferences(ct, "erp_emname");
+        if (StringUtils.isEmpty(name))
+            name = MyApplication.getInstance().mLoginUser.getNickName();
+        user_tv.setText(name);
         findViewById(R.id.bt_save).setOnClickListener(this);
         findViewById(R.id.start_rl).setOnClickListener(this);
         findViewById(R.id.end_rl).setOnClickListener(this);
@@ -193,7 +196,7 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
             case R.id.users_rl://选择参会人员
                 intent = new Intent(ct, UserSelectActivity.class);
                 //已选择参会人员传递
-                intent.putExtra("users",users_tv.getText().toString().trim());
+                intent.putExtra("users", users_tv.getText().toString().trim());
                 startActivityForResult(intent, 0x21);
                 break;
             case R.id.tag_rl://点击会议标签
@@ -365,6 +368,7 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         if (baseUrl == null) {
             baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
         }
+
         String url = baseUrl + "oa/meeting/saveMeetingroomapply.action";
         final Map<String, Object> param = new HashMap<>();
         String form = "{" +
@@ -376,7 +380,7 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
                 "\"ma_isturndoc\":" + "\"" + "否" + "\",\n" +
                 "\"ma_mrname\":" + "\"" + location_et.getText().toString() + "\",\n" +
                 "\"ma_recorddate\":" + "\"" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "\",\n" +
-                "\"ma_recorder\":" + "\"" + MyApplication.getInstance().mLoginUser.getNickName() + "\",\n" +
+                "\"ma_recorder\":" + "\"" + user_tv.getText().toString() + "\",\n" +
                 "\"ma_remark\":" + "\"" + about_et.getText().toString() + "\",\n" +
                 "\"ma_starttime\":" + "\"" + start_tv.getText().toString() + "\",\n" +
                 "\"ma_endtime\":" + "\"" + end_tv.getText().toString() + "\",\n" +

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

@@ -1,179 +0,0 @@
-package com.xzjmyk.pm.activity.ui.erp.activity.oa;
-
-import android.app.AlarmManager;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.support.v7.app.NotificationCompat;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.alibaba.fastjson.JSONArray;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.oa.SigninBean;
-import com.xzjmyk.pm.activity.db.dao.SigninDao;
-import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
-import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
-import com.xzjmyk.pm.activity.util.TimeUtils;
-
-import java.util.Calendar;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import static com.xzjmyk.pm.activity.ui.erp.util.CommonUtil.getSharedPreferences;
-import static com.xzjmyk.pm.activity.util.TimeUtils.f_long_2_str;
-import static com.xzjmyk.pm.activity.util.TimeUtils.f_str_2_long;
-
-/**
- * AlarmReceiver
- */
-public class AlarmReceiver extends BroadcastReceiver {
-    private long newTime = System.currentTimeMillis();//当前时间(先取网络时间再取本地时间)
-    private Context ct;
-    private long h = 1000 * 3600;
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        ct = context;
-
-        if (intent.getAction() != null && "ALARMA_ACTION".equals(intent.getAction())) {
-            if (CommonUtil.getSharedPreferencesBoolean(context, "ALARMA_CLICK", false)) {
-                //判断是否打卡到当前时间
-                String thisTime = TimeUtils.f_long_2_str(newTime);
-                String oldTime = CommonUtil.getSharedPreferences(context, "ALARMA_CLICK_LONG");
-                if (StringUtils.isEmpty(oldTime)) {//没有保存过
-                    sendNotification(ct);
-                } else {
-                    long oldlong = TimeUtils.f_str_2_long(oldTime) + h;
-                    if (oldlong < newTime) {//上次打卡时间距离没那么近了
-                        sendNotification(ct);
-                    }
-                }
-                CommonUtil.setSharedPreferences(context, "ALARMA_CLICK_LONG", thisTime);
-            }
-        }
-    }
-
-    //判断打卡是否在时间里面
-    private boolean isSignined(String start, String end, JSONArray array) {
-        String time = null;
-        for (int i = 0; i < array.size(); i++) {//获取打卡记录中的打卡时间
-            time = clearDay(array.getJSONObject(i).containsKey("cl_time") ? (array.getJSONObject(i).getString("cl_time") == null ? " " : array.getJSONObject(i).getString("cl_time")) : " ");
-            if ((time.compareTo(start) < 0) && (time.compareTo(end) > 0)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    //获取打卡时间列表去除年月日和秒
-    private String clearDay(String time) {
-        return TimeUtils.long2str(f_str_2_long(time), "HH:mm");
-    }
-
-    /**
-     * 签到提醒弹出通知栏
-     *
-     * @param context
-     */
-    private void sendNotification(Context context) {
-        NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-        NotificationCompat.Builder builder = new NotificationCompat.Builder(
-                context.getApplicationContext());
-        builder.setSmallIcon(R.drawable.uuu);
-        builder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);
-        builder.setAutoCancel(true);
-        builder.setContentTitle("签到提醒");
-        CharSequence stringExtra = "注意按时打卡";
-        builder.setContentText(stringExtra);
-        Intent intent = new Intent(context, SigninActivity.class);
-        PendingIntent pendingIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
-        builder.setContentIntent(pendingIntent);
-        mNotificationManager.notify(1000, builder.build());
-        //设置签到提醒
-        if (CommonUtil.getSharedPreferencesBoolean(context, "ALARMA_CLICK", false))
-            initArmmanager(context);
-    }
-
-    private int getMin(String chche) {
-        if (StringUtils.isEmpty(chche)) return 5;
-        Pattern p = Pattern.compile("(\\d+)");
-        Matcher m = p.matcher(chche);
-        if (m.find()) {
-            return Integer.parseInt(m.group(0));
-        }
-        return -1;
-    }
-
-    //初始化提醒
-    private void initArmmanager(Context ct) {
-        //1.获取打卡时间
-//        ArrayList<Signin> signins = SigninDao.getInstance(ct).query();
-        List<SigninBean> beans = SigninDao.getInstance(ct).queryByEmcode();
-        if (ListUtils.isEmpty(beans)) return;
-        //判断最近的时间是哪个
-        //获取提前和往后提醒时间
-        int uTime = getMin(getSharedPreferences(ct, AlarmaActivity.KEY_ALAR_TIME));
-        int dTime = getMin(getSharedPreferences(ct, AlarmaActivity.KEY_UALAR_TIME));
-        long utime = (uTime * 60 * 1000);//与上班时间提前的时间
-        long dtime = (dTime * 60 * 1000);//与下班时间延后的时间
-        long chche = 0;//时间毫秒数
-        boolean isOk = false;
-        long chchelong = -1;
-        for (SigninBean e : beans) {
-            //获取与当前时间最近的时间
-            if (!StringUtils.isEmpty(e.getWorkTime())) {
-                chche = f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getWorkTime() + ":00") - utime;
-                if (chchelong == 0)
-                    chchelong = chche;
-                if (chche > System.currentTimeMillis()) {//在允许范围
-                    isOk = true;
-                    break;
-                }
-                if (!StringUtils.isEmpty(e.getOffTime())) {
-                    chche = f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getOffTime() + ":00") + dtime;
-                    if (chche > System.currentTimeMillis()) {//在允许范围
-                        isOk = true;
-                        break;
-                    }
-                }
-            }
-        }
-        if (isOk) {//在当天允许提醒范围内
-            setArmmanager(ct, chche);
-        } else {
-            if (chchelong != 0) {
-                chchelong += 24 * 60 * 60 * 1000;
-                setArmmanager(ct, chchelong);
-            }
-        }
-    }
-
-    //清空提醒
-    private void unArmmanager(Context ct) {
-        Intent intent = new Intent(ct, AlarmReceiver.class);
-        intent.setAction("ALARMA_ACTION");
-        PendingIntent pi = PendingIntent.getBroadcast(ct, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
-        AlarmManager alarm = (AlarmManager) ct.getSystemService(ct.ALARM_SERVICE);
-        alarm.cancel(pi);
-    }
-
-    //TODO 在这里提醒时候会延迟6分钟不知道为什么
-    private void setArmmanager(Context ct, long time) {
-        unArmmanager(ct);
-        Log.i("gongpengming", f_long_2_str(time));
-        //操作:发送一个广播,广播接收后Toast提示定时操作完成
-        Intent intent = new Intent(ct, AlarmReceiver.class);
-        intent.setAction("ALARMA_ACTION");
-        AlarmManager alarm = (AlarmManager) ct.getSystemService(ct.ALARM_SERVICE);
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTimeInMillis(time);
-        alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), PendingIntent.getBroadcast(ct, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
-    }
-
-}

+ 94 - 186
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java

@@ -1,165 +1,145 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
-import android.app.AlarmManager;
-import android.app.PendingIntent;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
 import android.view.View;
-import android.widget.EditText;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.oa.SigninBean;
-import com.xzjmyk.pm.activity.db.dao.SigninDao;
+import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.alarm.AlarmManage;
 import com.xzjmyk.pm.activity.ui.erp.view.SwitchView;
-import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
-import java.util.Calendar;
-import java.util.List;
+import java.util.ArrayList;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import static com.xzjmyk.pm.activity.ui.erp.util.alarm.AlarmManage.ALARMA_CLICK;
+import static com.xzjmyk.pm.activity.ui.erp.util.alarm.AlarmManage.AUTO_SIGNIN;
+
 //签到提醒
-public class AlarmaActivity extends BaseActivity implements View.OnClickListener {
+public class AlarmaActivity extends BaseActivity implements View.OnClickListener, SwitchView.OnCheckedChangeListener {
     @ViewInject(R.id.isalarma_sw)
     private SwitchView isalarma_sw;
-    @ViewInject(R.id.autosign_sw)
-    private SwitchView autosign_sw;
-    @ViewInject(R.id.editText)
-    private EditText editText;
-    @ViewInject(R.id.editText2)
-    private EditText editText2;
+    @ViewInject(R.id.auto_signin_sw)
+    private SwitchView auto_signin_sw;
+
     @ViewInject(R.id.tv_alar)
     private TextView tv_alar;//上班时间
+
     @ViewInject(R.id.tv_ualar)
     private TextView tv_ualar;//下班时间
-    private boolean isClick;//判断是否为提醒
-    private AlarmaActivity ct;
-    private static String ALARMA_CLICK = "ALARMA_CLICK";//判断是否选中
-    public static String KEY_ALAR_TIME = "KEY_ALAR_TIME";
-    public static String KEY_UALAR_TIME = "KEY_UALAR_TIME";
-    private long newTime = System.currentTimeMillis();//当前时间(先取网络时间再取本地时间)
+
+    private boolean isAlarm;//判断是否为提醒
+    private boolean isAuto;//判断是否为自动
+
+
+    public static String KEY_ALAR_TIME = "KEY_ALAR_TIME";//上班提醒时间
+    public static String KEY_UALAR_TIME = "KEY_UALAR_TIME";//下班时间
+
+    private AlarmManage manage;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_oa_alarma);
+        setContentView(R.layout.activity_oa__alarma);
         ViewUtils.inject(this);
-        ct = this;
         initView();
     }
 
     private void initView() {
-        //测试使用
-        editText.setVisibility(View.GONE);
-        editText2.setVisibility(View.GONE);
-        //初始化界面显示时间
+        isAlarm = CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK, false);
+        isAuto = CommonUtil.getSharedPreferencesBoolean(ct, AUTO_SIGNIN, false);
+        isalarma_sw.setChecked(isAlarm);
+        auto_signin_sw.setChecked(isAuto);
+        manage = new AlarmManage();
+        manage.setSigninAlarm(ct);
         tv_alar.setOnClickListener(this);
         tv_ualar.setOnClickListener(this);
-        isClick = CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK, false);
-        isalarma_sw.setChecked(isClick);
-        String uDateTime = CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME);
-        String dDateTime = CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME);
-
-        if (uDateTime == null) {
-            uDateTime = "提前5分钟";
-            CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, uDateTime);
-        }
-        if (dDateTime == null) {
-            dDateTime = "延后5分钟";
-            CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, dDateTime);
+        isalarma_sw.setOnCheckedChangeListener(this);
+        auto_signin_sw.setOnCheckedChangeListener(this);
+    }
+
+
+    @Override
+    public void onClick(View view) {
+        String pre = null;
+        String[] time = getResources().getStringArray(R.array.alarm_time);
+        int requestCode = 0;
+        switch (view.getId()) {
+            case R.id.tv_alar:
+                pre = "提前";
+                requestCode = 0x21;
+                break;
+            case R.id.tv_ualar:
+                pre = "延迟";
+                requestCode = 0x22;
+                break;
+            default:
+                pre = "提前";
+                requestCode = 0x21;
+                break;
         }
-        tv_alar.setText(uDateTime);
-        tv_ualar.setText(dDateTime);
-        if (isClick) {
-            startThread(isClick);
+        ArrayList<SelectBean> beans = new ArrayList<>();
+        SelectBean bean = null;
+        for (String e : time) {
+            bean = new SelectBean();
+            bean.setName(pre + e);
+            bean.setClick(false);
+            beans.add(bean);
         }
-        isalarma_sw.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(View view, boolean isChecked) {
-                CommonUtil.putSharedPreferencesBoolean(ct, ALARMA_CLICK, isChecked);
-                isClick = isChecked;
-                startThread(isChecked);
-            }
-        });
+        Intent intent = new Intent(ct, SelectActivity.class);
+        intent.putExtra("type", 2);
+        intent.putParcelableArrayListExtra("data", beans);
+        intent.putExtra("title", "选择时间");
+        startActivityForResult(intent, requestCode);
     }
 
-    private void startThread(final boolean isChecked) {
-        if (isChecked) {
-            unArmmanager();
-            initArmmanager();
-        } else {
-            unArmmanager();
+    @Override
+    public void onCheckedChanged(View view, boolean isChecked) {
+
+        switch (view.getId()) {
+            case R.id.isalarma_sw:
+                CommonUtil.setSharedPreferences(ct, AlarmManage.ALARMA_CLICK, isChecked);
+                break;
+            case R.id.auto_signin_sw:
+                CommonUtil.setSharedPreferences(ct, AlarmManage.AUTO_SIGNIN, isChecked);
+                break;
         }
+        if (manage == null)
+            manage = new AlarmManage();
+        manage.setSigninAlarm(ct);
     }
 
-    //初始化提醒
-    private void initArmmanager() {
-        //1.获取打卡时间
-        List<SigninBean> beans = SigninDao.getInstance(ct).queryByEmcode();
-        if (ListUtils.isEmpty(beans)) return;
-        //判断最近的时间是哪个
-        //获取提前和往后提醒时间
-        int uTime = getMin(CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME));
-        int dTime = getMin(CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME));
-        long utime = (uTime * 60 * 1000);//与上班时间提前的时间
-        long dtime = (dTime * 60 * 1000);//与下班时间延后的时间
-        long chche = 0;//时间毫秒数
-        long chchelong = 0;
-        boolean isOk = false;
-        for (SigninBean e : beans) {
-            //获取与当前时间最近的时间
-            if (!StringUtils.isEmpty(e.getWorkTime())) {
-                chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getWorkTime() + ":00") - utime;
-                if (chchelong == 0)
-                    chchelong = chche;
-                if (chche > System.currentTimeMillis()) {//在允许范围
-                    isOk = true;
-                    break;
-                }
-                if (!StringUtils.isEmpty(e.getOffTime())) {
-                    chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getOffTime() + ":00") + dtime;
-                    if (chche > System.currentTimeMillis()) {//在允许范围
-                        isOk = true;
-                        break;
-                    }
-                }
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (data == null) return;
+        if (resultCode == 0x20) {
+            SelectBean b = data.getParcelableExtra("data");
+            if (b == null) return;
+            String name = StringUtils.isEmpty(b.getName()) ? "" : b.getName();
+            if (requestCode == 0x22) {
+                tv_ualar.setText(name);
+                CommonUtil.setSharedPreferences(ct, "ALARM_OFFWORK_TIME", getNumByString(name));
+            } else {
+                tv_alar.setText(name);
+                CommonUtil.setSharedPreferences(ct, "ALARM_WORK_TIME", getNumByString(name));
             }
-        }
-        if (isOk) {//在当天允许提醒范围内
-            setArmmanager(chche);
-        } else {
-            if (chchelong != 0) {
-                chchelong += 24 * 60 * 60 * 1000;
-                setArmmanager(chchelong);
+            if (requestCode == 0x21 || requestCode == 0x22) {
+                if (manage == null)
+                    manage = new AlarmManage();
+                manage.setSigninAlarm(ct);
             }
         }
     }
 
-    private void setArmmanager(long time) {
-        if (time <= 0) return;
-        //操作:发送一个广播,广播接收后Toast提示定时操作完成
-        Intent intent = new Intent(AlarmaActivity.this, AlarmReceiver.class);
-        intent.setAction("ALARMA_ACTION");
-        AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTimeInMillis(time);
-        Crouton.makeText(ct, "将在" + TimeUtils.long2str(time, "yyyy-MM-dd HH:mm") + "为您提醒");
-        alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), getPendingIntent(intent));
-    }
-
-
-    private int getMin(String chche) {
+    private int getNumByString(String chche) {
         if (StringUtils.isEmpty(chche)) return 5;
         Pattern p = Pattern.compile("(\\d+)");
         Matcher m = p.matcher(chche);
@@ -169,76 +149,4 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
         return -1;
     }
 
-    private PendingIntent getPendingIntent(Intent intent) {
-        return PendingIntent.getBroadcast(AlarmaActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
-    }
-
-    //清空提醒
-    private void unArmmanager() {
-        Intent intent = new Intent(AlarmaActivity.this, AlarmReceiver.class);
-        intent.setAction("ALARMA_ACTION");
-        PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
-        AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
-        alarm.cancel(pi);
-    }
-
-    private void showSelectDalog(final TextView tv, final boolean isU) {
-        /*
-         *上班时间设置,弹出框:提前1分钟,提前2分钟,提前5分钟,提前10分钟,提前20分钟,提前30分钟
-         *下班时间设置,弹出款:延迟1分钟,延迟2分钟,延迟5分钟,延迟10分钟,延迟20分钟,延迟30分钟
-         */
-        final String[] str = new String[6];
-        if (isU) {
-            str[0] = "提前1分钟";
-            str[1] = "提前2分钟";
-            str[2] = "提前5分钟";
-            str[3] = "提前10分钟";
-            str[4] = "提前20分钟";
-            str[5] = "提前30分钟";
-        } else {
-            str[0] = "延迟1分钟";
-            str[1] = "延迟2分钟";
-            str[2] = "延迟5分钟";
-            str[3] = "延迟10分钟";
-            str[4] = "延迟20分钟";
-            str[5] = "延迟30分钟";
-        }
-        AlertDialog.Builder builder = new AlertDialog.Builder(ct);
-        builder.setTitle("选择时间");
-        builder.setItems(str, new DialogInterface.OnClickListener() {
-            @Override
-            public void onClick(DialogInterface dialogInterface, int i) {
-                tv.setText(str[i]);
-                if (isU) {
-                    CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, str[i]);//保存上班签到的
-                } else {
-                    CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, str[i]);//保存下班班签到的
-                }
-                if (isClick) {
-                    startThread(isClick);
-                }
-            }
-        });
-        builder.show();
-    }
-
-    @Override
-    public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.tv_ualar:
-                showSelectDalog(tv_ualar, false);
-                break;
-            case R.id.tv_alar:
-                showSelectDalog(tv_alar, true);
-                break;
-        }
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        //退出时候保存时间到本地
-        CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, tv_alar.getText().toString().trim());//保存上班签到的
-        CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, tv_ualar.getText().toString().trim());//保存下班签到的时间
-    }
 }

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

@@ -1,21 +1,34 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;
+import android.widget.Toast;
 
+import com.alibaba.fastjson.JSON;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.LineNumberReader;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
 
 /**
  * Created by pengminggong on 2016/10/26.
@@ -29,6 +42,46 @@ public class ChangeMobileActivity extends BaseActivity {
     @ViewInject(R.id.exit_btn)
     private Button exit_btn;
 
+    private Handler handler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            String message = msg.getData().getString("result");
+            switch (msg.what) {
+                case 0x11:
+                    try {
+                        int id = JSON.parseObject(message).getInteger("id");
+                        validatorMac(id);
+                    } catch (Exception e) {
+                        progressDialog.dismiss();
+                        Crouton.makeText(ct, "解析异常");
+                    }
+                    break;
+                case 0x12:
+                    progressDialog.dismiss();
+                    finish();
+                    Toast.makeText(ct, R.string.change_mobile_ok, Toast.LENGTH_SHORT).show();
+                    break;
+                case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    progressDialog.dismiss();
+                    if (!StringUtils.isEmpty(message))
+                        Crouton.makeText(ct, message);
+//                    JsonValidator validator = new JsonValidator();
+//                    if (validator.validate(message)) {
+//                        Log.i("gongpengming","validate(message");
+//                        if (JSON.parseObject(message).containsKey("exceptionInfo")) {
+//                            Log.i("gongpengming","containsKey(message");
+//                            String error = JSON.parseObject(message).getString("exceptionInfo");
+//                            if (!StringUtils.isEmpty(error))
+//                                Crouton.makeText(ct, error);
+//                        }
+//                    }
+                    break;
+                default:
+                    break;
+            }
+        }
+    };
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -38,7 +91,9 @@ public class ChangeMobileActivity extends BaseActivity {
     }
 
     private void initView() {
-        mac_tv.setText(getMac());
+        String mac = getMac();
+        if (!StringUtils.isEmpty(mac))
+            mac_tv.setText(getMac());
         exit_btn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -46,16 +101,45 @@ public class ChangeMobileActivity extends BaseActivity {
                 if (StringUtils.isEmpty(message))
                     ToastMessage("请填写理由");
                 else
-                    subMit(message);
+                    validatorMac();
+
             }
         });
 
 
     }
 
-    private void subMit(String message) {
-        //TODO 提交
+    private void validatorMac() {
+        //获取网络数据
+        progressDialog.show();
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "common/saveCommon.action";
+        Map<String, Object> param = new HashMap<>();
+        Map<String, Object> params = new HashMap<>();
+        params.put("mm_emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        params.put("mm_emname", MyApplication.getInstance().mLoginUser.getNickName());
+        params.put("mm_macaddress", mac_tv.getText().toString());
+        params.put("mm_remark", sum_tv.getText().toString());
+        params.put("mm_status", "在录入");
+        params.put("mm_statuscode", "ENTERING");
+        params.put("mm_date", TimeUtils.f_long_2_str(System.currentTimeMillis()));
+        param.put("caller", "MobileMacChange");
+        param.put("formStore", StringUtils.mapToJson(params));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x11, null, null, "get");
+    }
+
 
+    private void validatorMac(int id) {
+        //获取网络数据
+        progressDialog.show();
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "common/submitCommon.action";
+        Map<String, Object> param = new HashMap<>();
+        param.put("caller", "MobileMacChange");
+        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, 0x12, null, null, "get");
     }
 
     public static String getMac() {

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

@@ -438,6 +438,7 @@ public class OutSigninOKActivity extends BaseActivity {
      * 签到
      */
     private void doSignin(int mo_id, int id) {
+
         progressDialog.show();
         //获取网络数据
         String url = baseUrl + "mobile/oa/saveOutSign.action";
@@ -447,7 +448,10 @@ public class OutSigninOKActivity extends BaseActivity {
             bean.setMo_id(mo_id);
         bean.setMo_address(addr_tv.getText().toString().trim());
         bean.setMo_mancode(CommonUtil.getSharedPreferences(this, "erp_username"));
-        bean.setMo_man(MyApplication.getInstance().mLoginUser.getNickName());
+        String name = CommonUtil.getSharedPreferences(ct, "erp_emname");
+        if (com.xzjmyk.pm.activity.util.StringUtils.isEmpty(name))
+            name = MyApplication.getInstance().mLoginUser.getNickName();
+        bean.setMo_man(name);
         bean.setMo_remark(text_edit.getText().toString());
         bean.setMo_attachid(id);
         bean.setMo_company(com_tv.getText().toString().trim());

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

@@ -1,5 +1,6 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -8,11 +9,13 @@ import android.view.MenuItem;
 import android.widget.EditText;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.MeetingDocBean;
+import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 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;
@@ -23,9 +26,13 @@ import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import static com.alibaba.fastjson.JSON.parseObject;
 
@@ -40,6 +47,7 @@ public class SaveMeetActivity extends BaseActivity {
     @ViewInject(R.id.follow_et)
     private EditText follow_et;
     private int id;
+    private String noid = null;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -57,6 +65,27 @@ public class SaveMeetActivity extends BaseActivity {
                 case 0x12://保存后更新编号后提交审批流
                     submitMeeting(id);
                     break;
+                case 0x13:
+                    try {
+                        if (!StringUtils.isEmpty(message) && message.length() > 10) {
+                            JsonValidator validator = new JsonValidator();
+                            if (validator.validate(message)) {
+                                JSONArray array = JSON.parseObject(message).getJSONArray("assigns");
+                                JSONObject object = array.getJSONObject(0);
+                                noid = object.getString("JP_NODEID");
+                                JSONArray data = object.getJSONArray("JP_CANDIDATES");
+                                sendToSelect(data);
+                            }
+                        } else {//只有一个审批人
+                            submitMeeting(id);
+                        }
+                    } catch (Exception e) {
+                        ToastMessage("解析数据错误");
+                    }
+                    break;
+                case 0x14:
+                    finish();
+                    break;
                 case 0x16://获取id
                     if (parseObject(message).containsKey("success") && parseObject(message).getBoolean("success")) {
                         id = parseObject(message).getInteger("id");
@@ -71,8 +100,9 @@ public class SaveMeetActivity extends BaseActivity {
                     }
                     break;
                 case 0x17://提交审批流
-                    Crouton.makeText(SaveMeetActivity.this, "保存会议纪要成功");
                     finish();
+//                    TODO 先关闭发布版本
+//                    judgeApprovers();
                     break;
                 default:
                     JsonValidator validator = new JsonValidator();
@@ -99,7 +129,32 @@ public class SaveMeetActivity extends BaseActivity {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x16, null, null, "post");
     }
 
-    //保存会议后提交
+    //提交动作,增加判断节点是否有多人的情况
+    private void judgeApprovers() {
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "common/getMultiNodeAssigns.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, 0x13, null, null, "post");
+    }
+
+    //提交动作,增加判断节点是否有多人的情况
+    private void selectApprovers(String emName) {
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "common/takeOverTask.action";
+        Map<String, Object> param = new HashMap<>();
+        Map<String, Object> params = new HashMap<>();
+        params.put("em_code", emName);
+        params.put("nodeId", noid);
+        param.put("_noc", 1);
+        param.put("params", StringUtils.mapToJson(params));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x14, 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<>();
@@ -132,6 +187,22 @@ public class SaveMeetActivity extends BaseActivity {
         bean = getIntent().getParcelableExtra("data");
     }
 
+    private void sendToSelect(JSONArray data) {
+        ArrayList<SelectBean> beans = new ArrayList<>();
+        SelectBean bean = null;
+        for (int i = 0; i < data.size(); i++) {
+            bean = new SelectBean();
+            bean.setName(data.getString(i));
+            bean.setClick(false);
+            beans.add(bean);
+        }
+        Intent intent = new Intent(ct, SelectActivity.class);
+        intent.putExtra("type", 2);
+        intent.putParcelableArrayListExtra("data", beans);
+        intent.putExtra("title", "选择审批人");
+        startActivityForResult(intent, 0x22);
+    }
+
     private void saveAble(String code, int id) {
         StringBuilder builder = new StringBuilder();
         String chche = "";
@@ -225,4 +296,36 @@ public class SaveMeetActivity extends BaseActivity {
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
         ViewUtil.httpSendRequest(this, url, param, handler, headers, 0x11, null, null, "post");
     }
+
+    public List<String> getTeacherList(String managers) {
+        List<String> ls = new ArrayList<String>();
+        Pattern pattern = Pattern.compile("(?<=\\()(.+?)(?=\\))");
+        Matcher matcher = pattern.matcher(managers);
+
+        while (matcher.find())
+            ls.add(matcher.group());
+        return ls;
+    }
+
+    private void getEmnameByReturn(String text) {
+        if (StringUtils.isEmpty(text)) return;
+        Pattern pattern = Pattern.compile("(?<=\\()(.+?)(?=\\))");
+        Matcher matcher = pattern.matcher(text);
+        while (matcher.find()) {
+            String name = matcher.group();
+            if (!StringUtils.isEmpty(name))
+                selectApprovers(name);
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == 0x22 && resultCode == 0x20) {
+            SelectBean b = data.getParcelableExtra("data");
+            if (b == null) return;
+            String name = StringUtils.isEmpty(b.getName()) ? "" : b.getName();
+            getEmnameByReturn(name);
+        }
+    }
 }

+ 12 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java

@@ -5,7 +5,6 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.text.Html;
-import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
@@ -22,7 +21,6 @@ import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.search.core.PoiInfo;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
-import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
@@ -44,6 +42,8 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import static com.xzjmyk.pm.activity.ui.erp.util.CommonUtil.getSharedPreferences;
+
 /**
  * 1.0x11 获取打卡记录列表
  * 2.0x12 获取判断用户是否是管理员接口
@@ -232,10 +232,11 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
                 " " + TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
         num_tv.setText("" + sigNum);
         String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-
         AvatarHelper.getInstance().displayAvatar(loginUserId, name_img, true);
-
-        name_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
+        String name = CommonUtil.getSharedPreferences(ct, "erp_emname");
+        if (StringUtils.isEmpty(name))
+            name = MyApplication.getInstance().mLoginUser.getNickName();
+        name_tv.setText(name);
         com_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany"));
         setLocation();
         do_trim.setOnClickListener(this);
@@ -295,9 +296,9 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     //获取打卡记录 date:yyyy-MM-dd
     private void loadLog() {
         if (emcode == null)
-            emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
+            emcode = getSharedPreferences(ct, "erp_username");
         final Map<String, Object> param = new HashMap<>();
-        param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        param.put("currentMaster", getSharedPreferences(ct, "erp_master"));
         param.put("page", 1);
         param.put("pageSize", 1000);
         param.put("condition", "mo_mancode='" + emcode + "' and to_char(mo_signtime,'yyyy-MM-dd')='" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "'");
@@ -311,15 +312,15 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     private void net(String action, Map<String, Object> param, int what) {
         ct.progressDialog.show();
         if (baseUrl == null)
-            baseUrl = CommonUtil.getSharedPreferences(ct, "erp_baseurl");
+            baseUrl = getSharedPreferences(ct, "erp_baseurl");
         if (emcode == null)
-            emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
+            emcode = getSharedPreferences(ct, "erp_username");
         String url = baseUrl + action;
 
         param.put("emcode", emcode);
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        param.put("sessionId", getSharedPreferences(ct, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        headers.put("Cookie", "JSESSIONID=" + getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, what, null, null, "get");
     }
 

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

@@ -31,6 +31,8 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.SigninBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.AlarmaActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.ChangeMobileActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationMapActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SignremindActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.SigninAdapter;
@@ -67,6 +69,7 @@ import static com.alibaba.fastjson.JSON.parseObject;
  * 0x15:获取mac地址
  * 0x16:重新登陆
  * 0x17:上传新的mac地址
+ * 0x18:更改手机
  * Created by gongpengming on 2016/9/1.
  */
 public class SigninFragment extends EasyFragment implements View.OnClickListener {
@@ -180,6 +183,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                     loadNetData(System.currentTimeMillis());
                     break;
                 case 0x17:
+                    isMacInNet = true;
                     if (JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
                         CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
                             @Override
@@ -199,16 +203,14 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                     } else if (StringUtils.isInclude(message, "该设备不是考勤打卡常用设备")
                             || StringUtils.isInclude(message, "该设备已被他人绑定")) {
                         showError(message);
+                    } else if (StringUtils.isInclude(message, "404")) {
+                        CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
+                            @Override
+                            public void callBack(String code) {
+                                doSignin(code);
+                            }
+                        });
                     }
-                    //TODO 发布版本不适用
-//                    else if (StringUtils.isInclude(message, "404")) {
-//                        CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
-//                            @Override
-//                            public void callBack(String code) {
-//                                doSignin(code);
-//                            }
-//                        });
-//                    }
                     break;
             }
         }
@@ -252,7 +254,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
         Intent intent = null;
         switch (view.getId()) {
             case R.id.seting:
-                intent = new Intent(ct, SignremindActivity.class);
+                intent = new Intent(ct, AlarmaActivity.class);
                 startActivity(intent);
                 break;
             case R.id.back:
@@ -264,17 +266,11 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                         Crouton.makeText(ct, "当前网络不可用,请检查网络连接");
                         return;
                     }
-                    CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
-                        @Override
-                        public void callBack(String code) {
-                            doSignin(code);
-                        }
-                    });
-//                    if (isMacInNet) {
-//                        validatorMac();
-//                    } else {
-//                        showFristMac();
-//                    }
+                    if (isMacInNet) {
+                        validatorMac();
+                    } else {
+                        showFristMac();
+                    }
                 }
                 break;
             case R.id.title:
@@ -312,7 +308,6 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
     }
 
     private void returnLogin() {
-        //TODO 重新登陆
         loginNum++;
         if (loginNum > 1) return;
         if (AppConfig.DEBUG)
@@ -386,8 +381,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
         listview.setAdapter(adapter);
         office_addr.setText(Html.fromHtml("<font color=\'#575757\'>当前位置  " + "</font><font color=\'#000000\'>" + addr + "</font>"));
         loadNetData(System.currentTimeMillis());//获取打卡班次信息
-        //TODO 发布版本不使用
-//        getMacByNet();
+        getMacByNet();
         //判断是否有定位权限
         if (!isOpenGps()) {
             Crouton.makeText(ct, "为了更好体验,请打开GPS", 3000);
@@ -407,6 +401,8 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                     public void onPositive(MaterialDialog dialog) {
                         //TODO 调转到申请更换手机界面
                         dialog.dismiss();
+                        Intent intent = new Intent(ct, ChangeMobileActivity.class);
+                        startActivityForResult(intent, 0x18);
                     }
 
                     @Override

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

@@ -46,6 +46,7 @@ import java.util.Map;
  * 所有订阅
  * Created by RaoMeng on 2016/9/5.
  */
+
 public class SubscriptionAllFragment extends BaseFragment {
     private PullToRefreshListView mPullToRefreshListView;
     private AllSubscriptionAdapter mAllSubscriptionAdapter;
@@ -84,8 +85,8 @@ public class SubscriptionAllFragment extends BaseFragment {
         currentUser = CommonUtil.getSharedPreferences(getActivity(), "erp_username");
         mPullToRefreshListView = (PullToRefreshListView) root.findViewById(R.id.subscription_all_ptlv);
         mSubscriptionNumbers = new ArrayList<>();
-        mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(), mSubscriptionNumbers);
         mAllSubscriptonKindMessages = new ArrayList<>();
+        mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(), mSubscriptionNumbers);
 
         mDbAllSubscriptonKindMessages = new ArrayList<>();
         mDbSubscriptionNumbers = new ArrayList<>();
@@ -132,9 +133,9 @@ public class SubscriptionAllFragment extends BaseFragment {
                 Intent intent = new Intent();
                 intent.setClass(getActivity(), SubscribeDetailActivity.class);
                 intent.putExtra("flag", "all");
-                intent.putExtra("subId", mSubscriptionNumbers.get(position - 1).getId());
-                intent.putExtra("subTitle", mSubscriptionNumbers.get(position - 1).getTitle());
-                intent.putExtra("subStatus", mSubscriptionNumbers.get(position - 1).getStatus());
+                intent.putExtra("subId", mAllSubscriptionAdapter.getmSubscriptionNumbers().get(position - 1).getId());
+                intent.putExtra("subTitle", mAllSubscriptionAdapter.getmSubscriptionNumbers().get(position - 1).getTitle());
+                intent.putExtra("subStatus", mAllSubscriptionAdapter.getmSubscriptionNumbers().get(position - 1).getStatus());
                 startActivityForResult(intent, SUBSCRIBE_DETAIL_REQUEST);
             }
         });
@@ -151,10 +152,9 @@ public class SubscriptionAllFragment extends BaseFragment {
                         mAllSubscriptionAdapter.getmSubscriptionNumbers().get(position - 1).setRemoved(1);
                         mDbManager.updateAllSubs(mAllSubscriptionAdapter.getmSubscriptionNumbers().get(position - 1));
                         mAllSubscriptionAdapter.getmSubscriptionNumbers().remove(position - 1);
-                        
-                        
+
                         mAllSubscriptionAdapter.notifyDataSetChanged();
-                        mAllSubscriptonKindMessages.get(rbPos).setSubscriptionNumbers( mAllSubscriptionAdapter.getmSubscriptionNumbers());
+                        mAllSubscriptonKindMessages.get(rbPos).setSubscriptionNumbers(mAllSubscriptionAdapter.getmSubscriptionNumbers());
 
                         if (mAllSubscriptionAdapter.getmSubscriptionNumbers().size() == 0) {
                             mAllSubscriptonKindMessages.remove(rbPos);
@@ -174,6 +174,8 @@ public class SubscriptionAllFragment extends BaseFragment {
                                 mAllSubscriptionAdapter.getmSubscriptionNumbers().clear();
                                 mAllSubscriptionAdapter.getmSubscriptionNumbers().addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
                                 mAllSubscriptionAdapter.notifyDataSetChanged();
+//                                mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(), mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+//                                mPullToRefreshListView.getRefreshableView().setAdapter(mAllSubscriptionAdapter);
 
                             }
                         }
@@ -205,15 +207,11 @@ public class SubscriptionAllFragment extends BaseFragment {
                 mSubsTypeAdapter.notifyDataSetChanged();
                 rbPos = position;
                 if (mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers().size() != 0) {
-//                    mSubscriptionNumbers.clear();
-//                    mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
-//                    mAllSubscriptionAdapter.notifyDataSetChanged();
-                    mAllSubscriptionAdapter =new AllSubscriptionAdapter(getActivity(),mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                    mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(), mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
                     mPullToRefreshListView.getRefreshableView().setAdapter(mAllSubscriptionAdapter);
                 }
             }
         });
-
         mTypeListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
             @Override
             public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
@@ -304,68 +302,73 @@ public class SubscriptionAllFragment extends BaseFragment {
 
     @Override
     protected void initDatas() {
-        //每次初始化页面都需要访问网络数据用来更新本地缓存
-        sendAllSubscriptionRequest();
+        if (CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())){
+            //每次初始化页面都需要访问网络数据用来更新本地缓存
+            sendAllSubscriptionRequest();
+        }else {
+            //没有网络时,取本地数据库数据
+            getDbSubsData();
+        }
 
-        /*Log.d("currentMaster: ", currentMaster);
+    }
+
+    /**
+     * 获取本地数据库全部订阅
+     */
+    public void getDbSubsData() {
+        mAllSubscriptonKindMessages.clear();
         String cacheKeys = SharedUtil.getString(currentMaster + currentUser + "subs");
         if (cacheKeys != null) {
             String[] cacheKeysArray = cacheKeys.split(",");
+            keyStrings.clear();
             for (int i = 0; i < cacheKeysArray.length; i++) {
                 keyStrings.add(cacheKeysArray[i]);
             }
         }
-        try {
-            List<SubscriptionNumber> dbSubscriptionNumbers
-                    = mDbManager.queryFromAllSubs(new String[]{currentMaster, currentUser}, "subs_master=? and subs_username=? ");
-            if (dbSubscriptionNumbers == null || dbSubscriptionNumbers.size() == 0) {
-//            if (true) {
-                sendAllSubscriptionRequest();
-//                Toast.makeText(getActivity(), "网络加载", Toast.LENGTH_SHORT).show();
+        rbPos = 0;
+        List<SubscriptionNumber> dbSubscriptionNumbers
+                = mDbManager.queryFromAllSubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
+        if (dbSubscriptionNumbers == null || dbSubscriptionNumbers.size() == 0) {
+            mEmptyLayout.showEmpty();
+        } else {
+            if (keyStrings.size() == 0) {
+                mSubsTypeAdapter.notifyDataSetChanged();
+                initKeyStrings();
+                mTypeListView.setVisibility(View.GONE);
+                mEmptyLayout.showEmpty();
+                mSubscriptionNumbers.clear();
+                mAllSubscriptionAdapter.notifyDataSetChanged();
             } else {
-//                Toast.makeText(getActivity(), "本地加载", Toast.LENGTH_SHORT).show();
-                if (keyStrings.size() == 0) {
-                    mSubsTypeAdapter.notifyDataSetChanged();
-                    initKeyStrings();
-                    mTypeListView.setVisibility(View.GONE);
-                    mEmptyLayout.showEmpty();
-                    mSubscriptionNumbers.clear();
-                    mAllSubscriptionAdapter.notifyDataSetChanged();
-                } else {
-                    mTypeListView.setVisibility(View.VISIBLE);
-                    mSubsTypeAdapter.notifyDataSetChanged();
-                    initKeyStrings();
-                    for (int i = 0; i < keyStrings.size(); i++) {
-                        AllSubscriptonKindMessage tempSubscriptonKindMessage = new AllSubscriptonKindMessage();
-                        List<SubscriptionNumber> tempSubscriptionNumbers = new ArrayList<>();
-                        String currentKey = keyStrings.get(i);
-                        for (int j = 0; j < dbSubscriptionNumbers.size(); j++) {
-                            SubscriptionNumber currentSubscriptionNumber = dbSubscriptionNumbers.get(j);
-                            if (currentSubscriptionNumber.getType().equals(currentKey)) {
-                                tempSubscriptionNumbers.add(currentSubscriptionNumber);
-                            }
+                mTypeListView.setVisibility(View.VISIBLE);
+                mSubsTypeAdapter.notifyDataSetChanged();
+                initKeyStrings();
+                for (int i = 0; i < keyStrings.size(); i++) {
+                    AllSubscriptonKindMessage tempSubscriptonKindMessage = new AllSubscriptonKindMessage();
+                    List<SubscriptionNumber> tempSubscriptionNumbers = new ArrayList<>();
+                    String currentKey = keyStrings.get(i);
+                    for (int j = 0; j < dbSubscriptionNumbers.size(); j++) {
+                        SubscriptionNumber currentSubscriptionNumber = dbSubscriptionNumbers.get(j);
+                        if (currentSubscriptionNumber.getType().equals(currentKey)) {
+                            tempSubscriptionNumbers.add(currentSubscriptionNumber);
                         }
-                        tempSubscriptonKindMessage.setSubscriptionKind(currentKey);
-                        tempSubscriptonKindMessage.setSubscriptionNumbers(tempSubscriptionNumbers);
-
-                        mAllSubscriptonKindMessages.add(tempSubscriptonKindMessage);
                     }
-                    mSubscriptionNumbers.clear();
-                    mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
-                    Log.d("allsubscription:", mSubscriptionNumbers.toString());
-                    mAllSubscriptionAdapter.notifyDataSetChanged();
+                    tempSubscriptonKindMessage.setSubscriptionKind(currentKey);
+                    tempSubscriptonKindMessage.setSubscriptionNumbers(tempSubscriptionNumbers);
+                    mAllSubscriptonKindMessages.add(tempSubscriptonKindMessage);
                 }
-
+                mAllSubscriptionAdapter.getmSubscriptionNumbers().clear();
+                mAllSubscriptionAdapter.getmSubscriptionNumbers().addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                Log.d("allsubscription:", mSubscriptionNumbers.toString());
+                mAllSubscriptionAdapter.notifyDataSetChanged();
             }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }*/
+        }
     }
 
+
     /**
-     * 获取全部订阅
+     * 获取网络数据全部订阅
      */
-    private void sendAllSubscriptionRequest() {
+    public void sendAllSubscriptionRequest() {
         //取出本地缓存数据
         mDbSubscriptionNumbers = mDbManager.queryFromAllSubs(new String[]{currentMaster, currentUser}, "subs_master=? and subs_username=? ");
         progressDialog.show();
@@ -465,15 +468,16 @@ public class SubscriptionAllFragment extends BaseFragment {
                     if (keyStrings.size() == 0) {
                         mTypeListView.setVisibility(View.GONE);
                         initKeyStrings();
-                        mSubscriptionNumbers.clear();
+                        mEmptyLayout.showEmpty();
+                        mAllSubscriptionAdapter.getmSubscriptionNumbers().clear();
                         mAllSubscriptionAdapter.notifyDataSetChanged();
                     } else {
                         mTypeListView.setVisibility(View.VISIBLE);
                         mSubsTypeAdapter.notifyDataSetChanged();
                         initKeyStrings();
-                        mSubscriptionNumbers.clear();
-                        mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
-                        Log.d("allsubscription:", mSubscriptionNumbers.toString());
+                        mAllSubscriptionAdapter.getmSubscriptionNumbers().clear();
+                        mAllSubscriptionAdapter.getmSubscriptionNumbers().addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                        Log.d("allsubscription:", mAllSubscriptionAdapter.getmSubscriptionNumbers().toString());
                         mAllSubscriptionAdapter.notifyDataSetChanged();
                     }
 
@@ -485,6 +489,9 @@ public class SubscriptionAllFragment extends BaseFragment {
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
                     Crouton.makeText(getActivity(), msg.getData().getString("result"), Style.ALERT).show();
+                    if (mPullToRefreshListView.isRefreshing()){
+                        mPullToRefreshListView.onRefreshComplete();
+                    }
                     break;
             }
         }
@@ -495,8 +502,8 @@ public class SubscriptionAllFragment extends BaseFragment {
         if (requestCode == SUBSCRIBE_DETAIL_REQUEST && resultCode == 9 && data != null) {
             int statu = data.getIntExtra("status", 0);
             if (mClickedPos != -1) {
-                mSubscriptionNumbers.get(mClickedPos - 1).setStatus(statu);
-                mDbManager.updateAllSubs(mSubscriptionNumbers.get(mClickedPos - 1));
+                mAllSubscriptionAdapter.getmSubscriptionNumbers().get(mClickedPos - 1).setStatus(statu);
+                mDbManager.updateAllSubs(mAllSubscriptionAdapter.getmSubscriptionNumbers().get(mClickedPos - 1));
                 mAllSubscriptionAdapter.notifyDataSetChanged();
             }
         }

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

@@ -105,14 +105,12 @@ public class SubscriptionMyFragment extends BaseFragment {
 
     @Override
     protected void initDatas() {
-//        List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
-//        if (dbPersonalSubscriptionBeans == null || dbPersonalSubscriptionBeans.size() == 0){
-        if (true){
-//            Toast.makeText(getActivity(), "网络加载", Toast.LENGTH_SHORT).show();
+        List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
+        if (dbPersonalSubscriptionBeans == null
+                || dbPersonalSubscriptionBeans.size() == 0
+                || CommonUtil.isNetWorkConnected(getActivity().getApplicationContext())){
             sendSubscriptionRequest();
         }else {
-            List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
-            Toast.makeText(getActivity(), "本地加载", Toast.LENGTH_SHORT).show();
             mPersonalSubscriptionBeans.clear();
             mPersonalSubscriptionBeans.addAll(dbPersonalSubscriptionBeans);
             mMySubscriptionAdapter.notifyDataSetChanged();

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

@@ -395,6 +395,7 @@ public class ViewUtil {
             CommonUtil.setSharedPreferences(ct, "erp_uu", String.valueOf(dataMap.get("uu")));
             CommonUtil.setSharedPreferences(ct, "erp_masterId", erp_masterId);
             CommonUtil.setSharedPreferences(ct, "erp_login", true);
+            CommonUtil.setSharedPreferences(ct,"erp_emname",String.valueOf(dataMap.get("emname")));
         }
         if (erp_phone != null) {
             Log.i("login_status", "ChangeStatusERP:" + erp_phone);

+ 39 - 23
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonUtil.java

@@ -84,7 +84,6 @@ public class CommonUtil {
     private final static String AppShareName = "setting";
 
 
-
     public final static UMShareListener umShareListener = new UMShareListener() {
         @Override
         public void onResult(SHARE_MEDIA platform) {
@@ -98,7 +97,7 @@ public class CommonUtil {
                     Toast.makeText(MyApplication.getInstance(), "QQ空间" + " 分享成功", Toast.LENGTH_SHORT).show();
 
                 } else if (platform.name().equals("SINA")) {
-                    Toast.makeText(MyApplication.getInstance(), "微博"+ " 分享成功", Toast.LENGTH_SHORT).show();
+                    Toast.makeText(MyApplication.getInstance(), "微博" + " 分享成功", Toast.LENGTH_SHORT).show();
                 } else if (platform.name().equals("QQ")) {
                     Toast.makeText(MyApplication.getInstance(), "QQ" + " 分享成功", Toast.LENGTH_SHORT).show();
                 } else if (platform.name().equals("WEIXIN_CIRCLE")) {
@@ -203,10 +202,10 @@ public class CommonUtil {
                 .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)
                 .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片以如何的编码方式显示
                 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型
-                        //.decodingOptions(BitmapFactory.Options decodingOptions)//设置图片的解码配置
+                //.decodingOptions(BitmapFactory.Options decodingOptions)//设置图片的解码配置
                 .delayBeforeLoading(0)//int delayInMillis为你设置的下载前的延迟时间
-                        //设置图片加入缓存前,对bitmap进行设置
-                        //.preProcessor(BitmapProcessor preProcessor)
+                //设置图片加入缓存前,对bitmap进行设置
+                //.preProcessor(BitmapProcessor preProcessor)
                 .resetViewBeforeLoading(true)//设置图片在下载前是否重置,复位
                 .build();//构建完成
         return options;
@@ -319,10 +318,11 @@ public class CommonUtil {
 
     /**
      * 检验是否是正确的网址
+     *
      * @param s
      * @return
      */
-    public static boolean isWebsite(String s){
+    public static boolean isWebsite(String s) {
         String regex = "^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\\\/])+$";
         Pattern p = Pattern.compile(regex);
         Matcher m = p.matcher(s);
@@ -345,6 +345,16 @@ public class CommonUtil {
         return (int) (pxValue / scale + 0.5f);
     }
 
+    public static boolean setSharedPreferences(Context ct, String key, int value) {
+        if (key != null) {
+            SharedPreferences sPreferences = ct.getSharedPreferences(AppShareName, Context.MODE_PRIVATE);
+            boolean falg = sPreferences.edit().putInt(key, value).commit();
+            return falg;
+        } else {
+            return false;
+        }
+    }
+
     public static boolean setSharedPreferences(Context ct, String key, String value) {
         if (key != null) {
             SharedPreferences sPreferences = ct.getSharedPreferences(AppShareName, Context.MODE_PRIVATE);
@@ -353,7 +363,6 @@ public class CommonUtil {
         } else {
             return false;
         }
-
     }
 
     public static boolean setSharedPreferences(Context ct, String key, String value, String preName) {
@@ -432,12 +441,12 @@ public class CommonUtil {
         return value;
     }
 
-    public static int getSharedPreferencesInt(Context ct, String key) {
+    public static int getSharedPreferencesInt(Context ct, String key,int defValues) {
         if (key == null) {
             return 0;
         }
         SharedPreferences sPreferences = ct.getSharedPreferences(AppShareName, Context.MODE_PRIVATE);
-        int value = sPreferences.getInt(key, -1);
+        int value = sPreferences.getInt(key, defValues);
         return value;
     }
 
@@ -810,17 +819,18 @@ public class CommonUtil {
 
     /**
      * 对话框是否展示
+     *
      * @param dialog
      * @return
      */
-    public static boolean isDialogShowing(Dialog dialog){
-        if (dialog != null && dialog.isShowing()){
+    public static boolean isDialogShowing(Dialog dialog) {
+        if (dialog != null && dialog.isShowing()) {
             return true;
         }
         return false;
     }
 
-    public static void getCommonId(Context ct,String seq,Handler mHandler,int codeWhat){
+    public static void getCommonId(Context ct, String seq, Handler mHandler, int codeWhat) {
         String url = Constants.getAppBaseUrl(ct) + "/common/getId.action";
         final Map<String, Object> param = new HashMap<>();
         param.put("seq", seq);
@@ -854,12 +864,13 @@ public class CommonUtil {
 
     /**
      * 去除字符串中的换行符,空格
+     *
      * @param s
      * @return
      */
-    public static String removeStringMark(String s){
+    public static String removeStringMark(String s) {
         String result = "";
-        if (!TextUtils.isEmpty(s)){
+        if (!TextUtils.isEmpty(s)) {
             Pattern pattern = Pattern.compile("\\s*|\t|\r|\n");
 //            Pattern pattern = Pattern.compile("\r|\n");
             Matcher matcher = pattern.matcher(s);
@@ -870,10 +881,11 @@ public class CommonUtil {
 
     /**
      * 返回输入框内去除换行符和空格之后的字符串
+     *
      * @param et
      * @return
      */
-    public static String getNoMarkEditText(FormEditText et){
+    public static String getNoMarkEditText(FormEditText et) {
         String temp = "";
         temp = et.getText().toString().trim();
         temp = removeStringMark(temp);
@@ -882,6 +894,7 @@ public class CommonUtil {
 
     /**
      * 添加图片的toast
+     *
      * @param context
      * @param imageId  图片id
      * @param content  文字内容
@@ -965,10 +978,10 @@ public class CommonUtil {
     }
 
     /**
-      * @desc:打印异常信息
-      * @author: on 2016/10/14
-      */
-    public static String getExceptionStack(Context ct, Throwable ex,boolean isDisplay) {
+     * @desc:打印异常信息
+     * @author: on 2016/10/14
+     */
+    public static String getExceptionStack(Context ct, Throwable ex, boolean isDisplay) {
         StringBuffer sb = new StringBuffer();
         sb.append("----------------------异常信息输出-------------------------------------\n");
         StringWriter writer = new StringWriter();
@@ -1014,6 +1027,7 @@ public class CommonUtil {
 
     /**
      * 获取网络时间
+     *
      * @param mHandler
      */
     public static void getNetTime(final Handler mHandler) {
@@ -1040,7 +1054,7 @@ public class CommonUtil {
                     mHandler.sendMessage(message);
                 }
                 long id = uc.getDate();
-                if (id != 0){
+                if (id != 0) {
                     date = new Date(id);
                     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                     nowTime = format.format(date);
@@ -1050,7 +1064,7 @@ public class CommonUtil {
                     message = Message.obtain();
                     message.what = GET_NET_TIME;
                     message.obj = nowTime;
-                }else {
+                } else {
                     message = Message.obtain();
                     message.what = GET_NET_TIME;
                     message.obj = null;
@@ -1064,6 +1078,7 @@ public class CommonUtil {
 
     /**
      * EditText竖直方向是否可以滚动
+     *
      * @param editText 需要判断的EditText
      * @return true:可以滚动  false:不可以滚动
      */
@@ -1073,11 +1088,11 @@ public class CommonUtil {
         //控件内容的总高度
         int scrollRange = editText.getLayout().getHeight();
         //控件实际显示的高度
-        int scrollExtent = editText.getHeight() - editText.getCompoundPaddingTop() -editText.getCompoundPaddingBottom();
+        int scrollExtent = editText.getHeight() - editText.getCompoundPaddingTop() - editText.getCompoundPaddingBottom();
         //控件内容总高度与实际显示高度的差值
         int scrollDifference = scrollRange - scrollExtent;
 
-        if(scrollDifference == 0) {
+        if (scrollDifference == 0) {
             return false;
         }
 
@@ -1088,6 +1103,7 @@ public class CommonUtil {
 
     /**
      * 弹出选择时间框,并显示在指定TextView上
+     *
      * @param context
      * @param textView
      */

+ 106 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmManage.java

@@ -0,0 +1,106 @@
+package com.xzjmyk.pm.activity.ui.erp.util.alarm;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+
+import com.xzjmyk.pm.activity.bean.oa.SigninBean;
+import com.xzjmyk.pm.activity.db.dao.SigninDao;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+
+import java.util.Calendar;
+import java.util.List;
+
+import static android.content.Context.ALARM_SERVICE;
+import static com.xzjmyk.pm.activity.util.TimeUtils.f_str_2_long;
+
+/**
+ * 提醒管理器
+ * Created by pengminggong on 2016/10/26.
+ */
+public class AlarmManage {
+    public final static String AUTO_SIGNIN_ACTION = "AUTO_SIGNIN_ACTION";//自动打卡action
+    public final static String WORK_ALARM_ACTION = "WORK_ALARM_ACTION";//上班提醒action
+    public final static String OFFWORK_ALARM_ACTION = "OFFWORK_ALARM_ACTION";//下班提醒action
+
+    public final static String ALARMA_CLICK = "ALARMA_CLICK";//判断是否选中提醒
+    public final static String AUTO_SIGNIN = "AUTO_SIGNIN";//判断是否选中
+
+    public void setSigninAlarm(Context ct) {
+        if (true) return;
+        boolean isAlarm = CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK, false);//是否自动打卡
+        boolean isAuto = CommonUtil.getSharedPreferencesBoolean(ct, AUTO_SIGNIN, false);//是否提醒
+        if (!isAlarm && !isAuto) {
+            unArmmanager(ct);
+            return;
+        }
+        List<SigninBean> beans = SigninDao.getInstance(ct).queryByEmcode();
+        int u = CommonUtil.getSharedPreferencesInt(ct, "ALARM_WORK_TIME", 5);//上班提前xx分钟
+        int d = CommonUtil.getSharedPreferencesInt(ct, "ALARM_OFFWORK_TIME", 5);//下班延迟xx分钟
+        long time = System.currentTimeMillis();
+        String today = TimeUtils.s_long_2_str(time);//当天日期   yyyy-MM-dd
+
+        String alarmTime = null;//提醒时间  yyyy-MM-dd HH:mm
+
+
+        for (SigninBean e : beans) {
+            if (isAlarm) {//提醒
+                alarmTime = today + " " + e.getWorkTime() + ":00";//当天下班时间
+
+                break;
+
+            }
+        }
+
+    }
+
+
+    private long getTimeByHHmm(String time) {
+        String che = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + time + ":00";//当天下班时间
+        return TimeUtils.f_str_2_long(che);
+    }
+
+    /**
+     * 该时间符合提醒时间
+     *
+     * @param ct
+     * @param action
+     * @param time   HH:mm
+     */
+    private void allowAlarm(Context ct, String action, String time) {
+        String che = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + time + ":00";
+        long l = f_str_2_long(che);
+        CommonUtil.setSharedPreferences(ct, "old_action", action);
+        setNextAlarm(ct, action, l);
+    }
+
+    private void setNextAlarm(Context ct, String action, long time) {
+        String str = TimeUtils.f_long_2_str(time);
+//        Toast.makeText(ct, "提醒时间为:" + str, Toast.LENGTH_SHORT).show();
+        Intent intent = new Intent(ct, AlarmReceiver.class);
+        intent.setAction(StringUtils.isEmpty(action) ? WORK_ALARM_ACTION : action);
+        AlarmManager alarm = (AlarmManager) ct.getSystemService(ALARM_SERVICE);
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(time);
+        alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), getPendingIntent(ct, intent));
+    }
+
+    //清空提醒
+    public void unArmmanager(Context ct) {
+        Intent intent = new Intent(ct, AlarmReceiver.class);
+        String action = CommonUtil.getSharedPreferences(ct, "old_action");
+        if (StringUtils.isEmpty(action))
+            action = AUTO_SIGNIN_ACTION;
+        intent.setAction(action);
+        AlarmManager alarm = (AlarmManager) ct.getSystemService(ALARM_SERVICE);
+        alarm.cancel(getPendingIntent(ct, intent));
+    }
+
+    private PendingIntent getPendingIntent(Context ct, Intent intent) {
+        return PendingIntent.getBroadcast(ct, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+    }
+
+}

+ 26 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmReceiver.java

@@ -0,0 +1,26 @@
+package com.xzjmyk.pm.activity.ui.erp.util.alarm;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+import com.xzjmyk.pm.activity.util.TimeUtils;
+
+/**
+ * Created by pengminggong on 2016/10/26.
+ */
+
+public class AlarmReceiver extends BroadcastReceiver {
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String chche = TimeUtils.f_long_2_str(System.currentTimeMillis());
+        String action = intent.getAction();
+        AlarmManage manage = new AlarmManage();
+//        manage.setSigninAlarm(context);
+    }
+
+
+
+
+}

+ 45 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/NotificationManage.java

@@ -0,0 +1,45 @@
+package com.xzjmyk.pm.activity.ui.erp.util.alarm;
+
+import android.app.Activity;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.support.v7.app.NotificationCompat;
+
+import com.xzjmyk.pm.activity.R;
+
+/**
+ * 通知工具类
+ * Created by pengminggong on 2016/10/27.
+ */
+public class NotificationManage {
+
+    /**
+     * 显示通知栏
+     *
+     * @param context
+     * @param icon    标题图标资源id
+     * @param title   标题
+     * @param content 内容
+     * @param clazz   点击跳转的界面
+     */
+    private void sendNotification(Context context, int icon, String title, String content, Class<? extends Activity> clazz) {
+        NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(context.getApplicationContext());
+        builder.setSmallIcon(icon);
+        builder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);
+        builder.setAutoCancel(true);
+        builder.setContentTitle(title);
+        builder.setContentText(content);
+        Intent intent = new Intent(context, clazz);
+        PendingIntent pendingIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+        builder.setContentIntent(pendingIntent);
+        mNotificationManager.notify(1000, builder.build());
+    }
+
+    public void sendNotification(Context context, Class<? extends Activity> clazz) {
+        sendNotification(context, R.drawable.uuu, "提醒", "提醒", clazz);
+    }
+}

+ 23 - 27
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/SwitchView.java

@@ -70,10 +70,7 @@ public class SwitchView extends View {
                 initAnimator();
             }
         });
-
         setChecked(true);
-
-
     }
 
     private void initAnimator() {
@@ -88,7 +85,7 @@ public class SwitchView extends View {
 
 
     public void setChecked(boolean check) {
-        if (mOnCheckedlistener!=null && check!=isChecked) {
+        if (mOnCheckedlistener != null && check != isChecked) {
             mOnCheckedlistener.onCheckedChanged(this, check);
         }
         isChecked = check;
@@ -109,9 +106,9 @@ public class SwitchView extends View {
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);
         if (changed) {
-            mEdgeWidth = getWidth()/30;
-            mLeftStartX = getWidth()/3;
-            mLeftTargetX = getWidth()*2/3;
+            mEdgeWidth = getWidth() / 30;
+            mLeftStartX = getWidth() / 3;
+            mLeftTargetX = getWidth() * 2 / 3;
             mRightStartX = mLeftStartX;
             mRightTargetX = mLeftTargetX;
         }
@@ -137,22 +134,22 @@ public class SwitchView extends View {
     private int getInnerBackR() {
         if (isPlayingRight || isPlaying) {
             long duration = isChecked ? Math.min(mDuration, mRightDuration) * 2 / 3 : Math.max(mDuration, mRightDuration);
-            if (System.currentTimeMillis() >= duration+mStartTime) {
-                return isChecked ? 0: getWidth() / 3 - mEdgeWidth;
+            if (System.currentTimeMillis() >= duration + mStartTime) {
+                return isChecked ? 0 : getWidth() / 3 - mEdgeWidth;
             }
-            float ratio = (float)(System.currentTimeMillis() - mStartTime) / duration;
+            float ratio = (float) (System.currentTimeMillis() - mStartTime) / duration;
             ratio = Math.min(ratio, 1);
-            ratio = isChecked ? (1-ratio) : ratio;
-            return (int)((getWidth()/3 - mEdgeWidth) * ratio);
+            ratio = isChecked ? (1 - ratio) : ratio;
+            return (int) ((getWidth() / 3 - mEdgeWidth) * ratio);
         } else {
-            return isChecked ? 0: getWidth() / 3 - mEdgeWidth;
+            return isChecked ? 0 : getWidth() / 3 - mEdgeWidth;
         }
     }
 
     private int getInnerLeftCenterX() {
         int innerRadius = getInnerBackR();
-        float ratio = (float)innerRadius / (getWidth()/3 -mEdgeWidth);
-        int leftX = (int) (getWidth()/2 - (getWidth()/4) * ratio);
+        float ratio = (float) innerRadius / (getWidth() / 3 - mEdgeWidth);
+        int leftX = (int) (getWidth() / 2 - (getWidth() / 4) * ratio);
         leftX = Math.max(leftX, getWidth() / 3);
         return leftX;
     }
@@ -162,13 +159,13 @@ public class SwitchView extends View {
         int curColor = UNCHECK_COLOR;
         if (isPlayingRight || isPlaying) {
             long duration = Math.min(mDuration, mRightDuration);
-            if (System.currentTimeMillis() >= duration+mStartTime) {
+            if (System.currentTimeMillis() >= duration + mStartTime) {
                 return isChecked ? CHECK_COLOR : UNCHECK_COLOR;
             }
-            float ratio = (float)(System.currentTimeMillis() - mStartTime) / duration;
+            float ratio = (float) (System.currentTimeMillis() - mStartTime) / duration;
             ratio = Math.min(ratio, 1);
             ratio = isChecked ? ratio : 1 - ratio;
-            int curAlpha =(int) (0xff * ratio);
+            int curAlpha = (int) (0xff * ratio);
             curColor = Color.argb(curAlpha, Color.red(CHECK_COLOR), Color.green(CHECK_COLOR), Color.blue(CHECK_COLOR));
 
         } else {
@@ -182,10 +179,10 @@ public class SwitchView extends View {
         int currentLeftCenerX = isChecked ? mLeftStartX : mLeftTargetX;
 
         if (isPlaying) {
-            float ratio = ((float)(System.currentTimeMillis()-mStartTime) / mDuration) * (isChecked ? 1 : -1);
+            float ratio = ((float) (System.currentTimeMillis() - mStartTime) / mDuration) * (isChecked ? 1 : -1);
             currentLeftCenerX += (mLeftTargetX - mLeftStartX) * ratio;
-            if ((isChecked && currentLeftCenerX >= mLeftTargetX ) ||
-                    !isChecked && currentLeftCenerX <= mLeftStartX ) {
+            if ((isChecked && currentLeftCenerX >= mLeftTargetX) ||
+                    !isChecked && currentLeftCenerX <= mLeftStartX) {
                 isPlaying = false;
             }
         } else {
@@ -198,27 +195,26 @@ public class SwitchView extends View {
     private int getRightCenterX() {
         int currentRightX = isChecked ? mRightStartX : mRightTargetX;
         if (isPlayingRight) {
-            float ratio = ((float)(System.currentTimeMillis()-mRightStartTime) / mRightDuration) * (isChecked ? 1 : -1);
+            float ratio = ((float) (System.currentTimeMillis() - mRightStartTime) / mRightDuration) * (isChecked ? 1 : -1);
             currentRightX += (mRightTargetX - mRightStartX) * ratio;
             if ((isChecked && currentRightX >= mRightTargetX) ||
-                !isChecked && currentRightX <= mRightStartX ) {
+                    !isChecked && currentRightX <= mRightStartX) {
                 isPlayingRight = false;
             }
         } else {
-            return isChecked ?  mRightTargetX : mRightStartX;
+            return isChecked ? mRightTargetX : mRightStartX;
         }
         return currentRightX;
     }
 
 
-
     private void drawRectCir(Canvas canvas, int radius, int leftCenterX, int rightCenterX, int centerY, Paint paint) {
-        canvas.drawRoundRect(new RectF(leftCenterX-radius, centerY-radius, rightCenterX+radius, centerY+radius), radius, radius, paint);
+        canvas.drawRoundRect(new RectF(leftCenterX - radius, centerY - radius, rightCenterX + radius, centerY + radius), radius, radius, paint);
     }
 
     @Override
     public boolean onTouchEvent(MotionEvent event) {
-        if (isPlaying||isPlayingRight) {
+        if (isPlaying || isPlayingRight) {
             return true;
         }
         return super.onTouchEvent(event);

+ 3 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/Constants.java

@@ -25,5 +25,7 @@ public class Constants {
 
     public  static String IS_NOTIFICATION="is_notification";//是是否进行通知
 
-    
+    public final static int REQUEST_MANAGE_ALL_SUBSCRIPTON = 101;
+    public final static int RESULT_MANAGE_ALL_SUBSCRIPTION = 102;
+
 }

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

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

BIN
WeiChat/src/main/res/drawable-hdpi/ic_subscription_number.png


BIN
WeiChat/src/main/res/drawable-xhdpi/ic_subscription_number.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/ic_subscription_number.png


+ 12 - 0
WeiChat/src/main/res/layout/activity_manage_all_subs.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="center"
+        android:text="未订阅整理页面"/>
+</LinearLayout>

+ 7 - 27
WeiChat/src/main/res/layout/activity_oa_alarma.xml

@@ -5,34 +5,30 @@
     android:layout_height="match_parent"
     android:orientation="vertical"
     tools:context=".ui.erp.activity.oa.AlarmaActivity">
-<TextView
-    android:layout_width="match_parent"
-    android:layout_height="20dp"/>
 
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="@dimen/item_height"
         android:layout_margin="2dp"
-        android:background="@drawable/oa_signin_tv_bg"
         android:visibility="gone"
-        android:padding="8dp"
-        >
+        android:background="@drawable/oa_signin_tv_bg"
+        android:padding="8dp">
 
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerVertical="true"
             android:text="自动打卡"
-            android:textSize="@dimen/text_main"
-            />
+            android:textSize="@dimen/text_main" />
 
         <com.xzjmyk.pm.activity.ui.erp.view.SwitchView
-            android:id="@+id/autosign_sw"
+            android:id="@+id/auto_signin_sw"
             android:layout_width="50dp"
             android:layout_height="35dp"
             android:layout_alignParentRight="true"
             android:layout_centerVertical="true" />
     </RelativeLayout>
+
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="@dimen/item_height"
@@ -86,6 +82,7 @@
             android:layout_alignParentRight="true"
             android:layout_centerVertical="true"
             android:drawableRight="@drawable/oa_next"
+            android:text="提前5分钟"
             android:textSize="@dimen/text_main" />
     </RelativeLayout>
 
@@ -119,26 +116,9 @@
             android:layout_alignParentRight="true"
             android:layout_centerVertical="true"
             android:drawableRight="@drawable/oa_next"
+            android:text="延迟5分钟"
             android:textSize="@dimen/text_main" />
     </RelativeLayout>
 
-    <EditText
-        android:id="@+id/editText"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:ems="10"
-        android:inputType="number"
-        android:visibility="gone"/>
-
-    <EditText
-        android:id="@+id/editText2"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:ems="10"
-        android:inputType="number"
-        android:visibility="gone"/>
-
 
 </LinearLayout>

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

@@ -367,7 +367,7 @@
                 android:drawablePadding="@dimen/drawable_padding"
                 android:drawableTop="@drawable/oa_8"
                 android:gravity="center"
-                android:text="考勤统计"
+                android:text="查询统计"
                 android:textColor="@color/white" />
 
             <TextView

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

@@ -3,6 +3,8 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
     android:orientation="vertical"
     tools:context="com.xzjmyk.pm.activity.ui.message.SelectActivity">
 
@@ -11,6 +13,7 @@
         android:layout_height="48dp"
         android:background="@drawable/bg_bar"
         android:focusable="true"
+        android:focusableInTouchMode="true"
         android:orientation="horizontal"
         android:paddingBottom="5dp"
         android:paddingLeft="15dp"
@@ -25,6 +28,7 @@
             android:background="@drawable/search_input"
             android:drawableLeft="@drawable/search"
             android:drawableRight="@drawable/search_clear"
+            android:focusableInTouchMode="false"
             android:hint="@string/search"
             android:textColor="@color/dark_grey"
             android:textColorHint="@color/grey"

+ 6 - 3
WeiChat/src/main/res/layout/fragment_all_subscription.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="horizontal">
@@ -9,15 +10,17 @@
         android:layout_width="80dp"
         android:layout_height="match_parent"
         android:background="#FFE2E0E0"
-        android:visibility="gone"/>
+        android:visibility="gone" />
+
     <View
         android:layout_width="1dp"
         android:layout_height="match_parent"
-        android:background="@color/item_line"/>
+        android:background="@color/item_line" />
+
     <com.handmark.pulltorefresh.library.PullToRefreshListView
         android:id="@+id/subscription_all_ptlv"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:divider="@color/item_line"
-        android:dividerPadding="1dp"/>
+        android:dividerPadding="1dp" />
 </LinearLayout>

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

@@ -10,6 +10,7 @@
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:scaleType="fitXY"
+        android:src="@drawable/ic_subscription_number"
         />
     <LinearLayout
         android:layout_width="match_parent"

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

@@ -10,6 +10,7 @@
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:scaleType="fitXY"
+        android:src="@drawable/ic_subscription_number"
         />
 
     <TextView

+ 11 - 1
WeiChat/src/main/res/values/strings.xml

@@ -7,7 +7,17 @@
         <item>转为新客户</item>
         <item>关联已有客户</item>
     </string-array>
+
+    <string-array name="alarm_time">
+        <item>1分钟</item>
+        <item>2分钟</item>
+        <item>5分钟</item>
+        <item>10分钟</item>
+        <item>20分钟</item>
+        <item>30分钟</item>
+    </string-array>
     <string name="add_summed">请添加工作总结!</string>
+    <string name="change_mobile_ok">申请变更成功,待系统审批完即可正常打卡!</string>
     <string name="submit">提交</string>
     <string name="change_mobile">手机变更单</string>
     <string name="play_phone">拨打电话</string>
@@ -270,7 +280,7 @@
     <string name="select_contacts">选择联系人</string>
     <string name="please_input_room_name">请输入群名</string>
     <string name="please_input_room_desc">请输入群描述</string>
-    <string name="service_start_failed">服务启动失败</string>
+    <string name="service_start_failed">您当前处于离线状态,请检查网络或重新登陆</string>
     <string name="create_room">创建群</string>
     <string name="room_name_empty_error">群名不能为空</string>
     <string name="room_des_empty_error">群描述不能为空</string>