Browse Source

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

Arison 9 years ago
parent
commit
2a4b07cd5c
36 changed files with 825 additions and 549 deletions
  1. 1 1
      WeiChat/build.gradle
  2. 42 30
      WeiChat/src/main/AndroidManifest.xml
  3. 39 32
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetUserEntity.java
  4. 27 29
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/Signin.java
  5. 45 81
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/SigninDao.java
  6. 31 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java
  7. 27 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailInfoActivity.java
  8. 17 15
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/ClientActivity.java
  9. 13 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerDetailActivity.java
  10. 10 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/TaskAddActivity.java
  11. 56 28
      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/AddMeetingActivity.java
  14. 57 18
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmReceiver.java
  15. 117 84
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java
  16. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java
  17. 46 62
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java
  18. 47 22
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  19. 125 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAListActivity.java
  20. 5 60
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java
  21. 9 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java
  22. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java
  23. 7 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java
  24. 15 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninClickFragment.java
  25. 4 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java
  26. BIN
      WeiChat/src/main/res/drawable-hdpi/ic_empty.png
  27. BIN
      WeiChat/src/main/res/drawable-hdpi/ic_star_left.png
  28. BIN
      WeiChat/src/main/res/drawable-hdpi/ic_star_right.png
  29. BIN
      WeiChat/src/main/res/drawable-hdpi/ic_xunzhang.png
  30. 2 1
      WeiChat/src/main/res/layout/activity_customer_detail.xml
  31. 7 18
      WeiChat/src/main/res/layout/activity_meeting.xml
  32. 14 0
      WeiChat/src/main/res/layout/activity_oalist.xml
  33. 7 4
      WeiChat/src/main/res/layout/activity_out_signin_ok.xml
  34. 40 19
      WeiChat/src/main/res/layout/activity_sales_ranking.xml
  35. 1 1
      WeiChat/src/main/res/layout/item_sale_ranking.xml
  36. 1 1
      WeiChat/src/main/res/menu/menu_push.xml

+ 1 - 1
WeiChat/build.gradle

@@ -4,7 +4,7 @@ apply plugin: 'com.getkeepsafe.dexcount'
 android {
     signingConfigs {
         config {
-            storeFile file('C:/Users/Arison/Desktop/applicationsignname[20150409]')
+            storeFile file('D:/config/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

+ 42 - 30
WeiChat/src/main/AndroidManifest.xml

@@ -84,6 +84,7 @@
             android:theme="@style/SplashTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
+
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
@@ -142,15 +143,16 @@
             android:label="@string/app_name"
             android:launchMode="singleTask"
             android:screenOrientation="portrait"
-            android:windowSoftInputMode="stateUnspecified|adjustNothing"></activity>
+            android:windowSoftInputMode="stateUnspecified|adjustNothing" />
         <!-- 消息模块 -->
         <activity android:name=".ui.message.ChatActivity" />
         <activity android:name=".ui.message.NewFriendActivity" />
         <activity android:name=".ui.message.MucChatActivity" />
         <activity android:name=".ui.message.RoomInfoActivity" />
-        <activity android:name=".ui.message.AddContactsActivity"
+        <activity
+            android:name=".ui.message.AddContactsActivity"
             android:configChanges="orientation|keyboardHidden"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden"/>
+            android:windowSoftInputMode="adjustUnspecified|stateHidden" />
         <!-- 群聊 -->
         <activity android:name=".ui.groupchat.SelectContactsActivity" />
 
@@ -404,12 +406,13 @@
         <activity android:name=".ui.message.SubscriptionActivity" />
         <activity android:name=".ui.circle.PhoneSelectActivity" />
         <activity android:name=".ui.erp.activity.crm.ClientActivity" />
-        <activity android:name=".ui.erp.activity.oa.SigninActivity"
-            android:theme="@style/AppTheme.NoActionBar"/>
-        <activity android:name=".ui.erp.activity.oa.AddMeetingActivity"
-            android:label="新增会议"/>
         <activity
-            android:name=".ui.erp.activity.oa.OAActivity" />
+            android:name=".ui.erp.activity.oa.SigninActivity"
+            android:theme="@style/AppTheme.NoActionBar" />
+        <activity
+            android:name=".ui.erp.activity.oa.AddMeetingActivity"
+            android:label="新增会议" />
+        <activity android:name=".ui.erp.activity.oa.OAActivity" />
         <activity
             android:name=".ui.erp.activity.oa.StatisticsActivity"
             android:label="考勤统计" />
@@ -428,35 +431,40 @@
             android:label="外勤签到" />
         <activity
             android:name=".ui.erp.activity.oa.MeetDetailsActivity"
-            android:label="会议详情" />
+            android:label="会议签到" />
         <activity
             android:name=".ui.erp.activity.oa.OARegisterActivity"
             android:label="查看签到情况" />
-        <activity android:name=".ui.erp.activity.crm.CustomerAddActivity"
-            android:theme="@style/CrmThemeBlue"
+        <activity
+            android:name=".ui.erp.activity.crm.CustomerAddActivity"
             android:configChanges="orientation|keyboardHidden"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden"/>
+            android:theme="@style/CrmThemeBlue"
+            android:windowSoftInputMode="adjustUnspecified|stateHidden" />
         <activity android:name=".ui.erp.activity.crm.CustomerDetailActivity" />
         <activity android:name=".ui.erp.activity.crm.CustomerListActivity" />
         <activity android:name=".ui.erp.activity.crm.CustomerMutilSelectActivity" />
         <activity
             android:name=".ui.erp.activity.crm.SalesRankingActivity"
             android:label="@string/title_activity_sales_ranking" />
-        <activity android:name=".ui.erp.activity.crm.VisitReportAddActivity"
+        <activity
+            android:name=".ui.erp.activity.crm.VisitReportAddActivity"
+            android:configChanges="orientation|keyboardHidden"
             android:theme="@style/CrmThemeTask"
+            android:windowSoftInputMode="adjustUnspecified|stateHidden" />
+        <activity
+            android:name=".ui.erp.activity.crm.TaskAddActivity"
             android:configChanges="orientation|keyboardHidden"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden"/>
-        <activity android:name=".ui.erp.activity.crm.TaskAddActivity"
+            android:windowSoftInputMode="adjustUnspecified|stateHidden" />
+        <activity
+            android:name=".ui.erp.activity.crm.VisitReportPlanActivity"
             android:configChanges="orientation|keyboardHidden"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden"/>
-        <activity android:name=".ui.erp.activity.crm.VisitReportPlanActivity"
+            android:theme="@style/CrmThemeTask"
+            android:windowSoftInputMode="adjustUnspecified|stateHidden" />
+        <activity
+            android:name=".ui.erp.activity.crm.BusinessAddActivity"
             android:configChanges="orientation|keyboardHidden"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden"
-            android:theme="@style/CrmThemeTask"/>
-        <activity android:name=".ui.erp.activity.crm.BusinessAddActivity"
             android:theme="@style/CrmThemeBlue"
-            android:configChanges="orientation|keyboardHidden"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden"/>
+            android:windowSoftInputMode="adjustUnspecified|stateHidden" />
         <activity android:name=".ui.erp.activity.crm.CustomerListSelectActivity" />
         <activity android:name=".ui.erp.activity.oa.AddMeetMainActivity" />
         <activity
@@ -476,7 +484,6 @@
         <activity
             android:name=".ui.erp.activity.oa.SuperSetActivity"
             tools:ignore="DuplicateActivity" />
-
         <activity
             android:name=".ui.erp.activity.oa.LocationMapActivity"
             android:label="选择地址" />
@@ -485,28 +492,33 @@
             android:label="签到提醒" />
         <activity
             android:name=".ui.erp.activity.oa.MeetingActivity"
-            android:label="会议助手" />
+            android:label="会议管理" />
         <activity
             android:name=".ui.message.SubscripSetActivity"
             android:label="申请订阅" />
         <activity
             android:name=".ui.erp.activity.oa.OutofficeSetActivity"
             android:label="签到设置" />
-        <activity android:name=".ui.erp.activity.oa.TestActivity"></activity>
+        <activity android:name=".ui.erp.activity.oa.TestActivity" />
         <activity
             android:name=".ui.erp.activity.oa.OutSigninOKActivity"
-            android:label="签到" />
-        <activity android:name=".ui.erp.activity.crm.ContactManAddActivity"
+            android:label="签到详情" />
+        <activity
+            android:name=".ui.erp.activity.crm.ContactManAddActivity"
             android:configChanges="orientation|keyboardHidden"
-            android:windowSoftInputMode="adjustUnspecified|stateHidden"></activity>
-        <activity android:name=".ui.erp.activity.oa.SaveMeetActivity" />
+            android:windowSoftInputMode="adjustUnspecified|stateHidden" />
+        <activity
+            android:name=".ui.erp.activity.oa.SaveMeetActivity"
+            android:label="保存会议纪要" />
         <activity
             android:name=".ui.erp.activity.oa.UserSelectActivity"
             android:label="选择人员" />
-        <activity android:name=".ui.erp.activity.crm.BusinessStateActivity"></activity>
+        <activity android:name=".ui.erp.activity.crm.BusinessStateActivity" />
         <activity
             android:name=".ui.erp.activity.oa.AddMeetTaskActivity"
             android:label="会议任务" />
+        <activity android:name=".ui.erp.activity.oa.OAListActivity"
+            android:label="外勤签到列表"/>
     </application>
 
 </manifest>

+ 39 - 32
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetUserEntity.java

@@ -10,39 +10,12 @@ public class MeetUserEntity implements Parcelable {
     private String imId;
     private String name;
     private String emCode;
-    private boolean isClick=false;
+    private int emId;
+    private boolean isClick = false;
 
     public MeetUserEntity() {
     }
 
-
-    protected MeetUserEntity(Parcel in) {
-        imId = in.readString();
-        name = in.readString();
-        emCode = in.readString();
-        isClick = in.readByte() != 0;
-    }
-
-    public static final Creator<MeetUserEntity> CREATOR = new Creator<MeetUserEntity>() {
-        @Override
-        public MeetUserEntity createFromParcel(Parcel in) {
-            return new MeetUserEntity(in);
-        }
-
-        @Override
-        public MeetUserEntity[] newArray(int size) {
-            return new MeetUserEntity[size];
-        }
-    };
-
-    public boolean isClick() {
-        return isClick;
-    }
-
-    public void setClick(boolean click) {
-        isClick = click;
-    }
-
     public String getImId() {
         return imId;
     }
@@ -67,6 +40,42 @@ public class MeetUserEntity implements Parcelable {
         this.emCode = emCode;
     }
 
+    public int getEmId() {
+        return emId;
+    }
+
+    public void setEmId(int emId) {
+        this.emId = emId;
+    }
+
+    public boolean isClick() {
+        return isClick;
+    }
+
+    public void setClick(boolean click) {
+        isClick = click;
+    }
+
+    protected MeetUserEntity(Parcel in) {
+        imId = in.readString();
+        name = in.readString();
+        emCode = in.readString();
+        emId = in.readInt();
+        isClick = in.readByte() != 0;
+    }
+
+    public static final Creator<MeetUserEntity> CREATOR = new Creator<MeetUserEntity>() {
+        @Override
+        public MeetUserEntity createFromParcel(Parcel in) {
+            return new MeetUserEntity(in);
+        }
+
+        @Override
+        public MeetUserEntity[] newArray(int size) {
+            return new MeetUserEntity[size];
+        }
+    };
+
     @Override
     public int describeContents() {
         return 0;
@@ -74,12 +83,10 @@ public class MeetUserEntity implements Parcelable {
 
     @Override
     public void writeToParcel(Parcel parcel, int i) {
-
         parcel.writeString(imId);
         parcel.writeString(name);
         parcel.writeString(emCode);
+        parcel.writeInt(emId);
         parcel.writeByte((byte) (isClick ? 1 : 0));
     }
-
-
 }

+ 27 - 29
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/Signin.java

@@ -7,36 +7,28 @@ import android.os.Parcelable;
  * Created by gongpm on 2016/7/28.
  */
 public class Signin implements Parcelable {
+
     private String code;//员工编号
-    private String date;//签到日期
-    private String utime;//获取的上班时间,当有多次排班,用分号分别
-    private String dtime;//获取的下班时间,当有多次排班,用分号分别
+    private String utime;//签到日期
+    private String dtime;//获取的上班时间,当有多次排班,用分号分别
     private String usigmin;//签到上班时间,当有多次排班,用分号分别
     private String dsigmin;//签到下班时间,当有多次排班,用分号分别
     public Signin() {
     }
-    public String getDsigmin() {
-        return dsigmin;
-    }
-
-    public void setDsigmin(String dsigmin) {
-        this.dsigmin = dsigmin;
-    }
-
-    public String getUsigmin() {
-        return usigmin;
-    }
 
-    public void setUsigmin(String usigmin) {
+    public Signin(  String utime, String dtime, String usigmin, String dsigmin) {
+        this.utime = utime;
+        this.dtime = dtime;
         this.usigmin = usigmin;
+        this.dsigmin = dsigmin;
     }
 
-    public String getDtime() {
-        return dtime;
+    public String getCode() {
+        return code;
     }
 
-    public void setDtime(String dtime) {
-        this.dtime = dtime;
+    public void setCode(String code) {
+        this.code = code;
     }
 
     public String getUtime() {
@@ -47,25 +39,32 @@ public class Signin implements Parcelable {
         this.utime = utime;
     }
 
-    public String getDate() {
-        return date;
+    public String getDtime() {
+        return dtime;
     }
 
-    public void setDate(String date) {
-        this.date = date;
+    public void setDtime(String dtime) {
+        this.dtime = dtime;
     }
 
-    public String getCode() {
-        return code;
+    public String getUsigmin() {
+        return usigmin;
     }
 
-    public void setCode(String code) {
-        this.code = code;
+    public void setUsigmin(String usigmin) {
+        this.usigmin = usigmin;
+    }
+
+    public String getDsigmin() {
+        return dsigmin;
+    }
+
+    public void setDsigmin(String dsigmin) {
+        this.dsigmin = dsigmin;
     }
 
     protected Signin(Parcel in) {
         code = in.readString();
-        date = in.readString();
         utime = in.readString();
         dtime = in.readString();
         usigmin = in.readString();
@@ -92,7 +91,6 @@ public class Signin implements Parcelable {
     @Override
     public void writeToParcel(Parcel parcel, int i) {
         parcel.writeString(code);
-        parcel.writeString(date);
         parcel.writeString(utime);
         parcel.writeString(dtime);
         parcel.writeString(usigmin);

+ 45 - 81
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/SigninDao.java

@@ -11,8 +11,8 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.oa.Signin;
 import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
 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.ArrayList;
 
 /**
  * 签到时间表DAO
@@ -38,112 +38,76 @@ public class SigninDao {
         helper = new DBOpenHelper(context);
     }
 
-
-    public long insert(Signin bean) {
-        long k = -1;
-        SQLiteDatabase db = helper.getWritableDatabase();
-        ContentValues values = new ContentValues();
-        StringBuilder nullComn = new StringBuilder();
-        if (StringUtils.isEmpty(bean.getCode())) {
-            nullComn.append(",code");
-        } else {
-            values.put("code", bean.getCode());
-        }
-        if (StringUtils.isEmpty(bean.getDate())) {
-            nullComn.append(",date");
-        } else {
-            values.put("date", bean.getDate());
-        }
-        if (StringUtils.isEmpty(bean.getUtime())) {
-            nullComn.append(",utime");
-        } else {
-            values.put("utime", bean.getUtime());
-        }
-        if (StringUtils.isEmpty(bean.getDtime())) {
-            nullComn.append(",dtime");
-        } else {
-            values.put("dtime", bean.getDtime());
-        }
-        if (StringUtils.isEmpty(bean.getUsigmin())) {
-            nullComn.append(",usigmin");
-        } else {
-            values.put("usigmin", bean.getUsigmin());
-        }
-        if (StringUtils.isEmpty(bean.getDsigmin())) {
-            nullComn.append(",dsigmin");
-        } else {
-            values.put("dsigmin", bean.getDsigmin());
-        }
-        if (nullComn.length() > 2)
-            nullComn.delete(0, 1);
-        try {
-            k = db.insert(titleName, nullComn.toString(), values);
-        } catch (SQLException e) {
-            Log.i("gongpengming", e == null ? "e==null" : e.getMessage());
-            e.printStackTrace();
-        } finally {
-            values.clear();
-            db.close();
-        }
-        return k;
+    public void updata(ArrayList<Signin> beans) {
+        String code = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
+        delete(code);
+        insert(code, beans);
     }
 
     /**
-     * 更新为打卡状态
-     *
-     * @param bean 当进入这个表示
-     * @return 返回更新档行数
+     * @param beans
+     * @return
      */
-    public long updata(Signin bean) {
+    public long insert(String code, ArrayList<Signin> beans) {
         long k = 0;
         SQLiteDatabase db = helper.getWritableDatabase();
+        db.beginTransaction();
         try {
-            ContentValues values = new ContentValues();
-            values.put("utime", bean.getUtime());
-            values.put("dtime", bean.getDtime());
-            values.put("usigmin", bean.getUsigmin());
-            values.put("dsigmin", bean.getDsigmin());
-            String where = "code=? and date=?";
-            String[] whereArg = {bean.getCode(), bean.getDate()};
-            k = db.update(titleName, values, where, whereArg);
+            //添加记录
+            for (Signin e : beans) {
+                String nullColum = null;
+                ContentValues values = new ContentValues();
+                values.put("code", code);
+                values.put("utime", e.getUtime());
+                values.put("dtime", e.getDtime());
+                values.put("usigmin", e.getUsigmin());
+                values.put("dsigmin", e.getDsigmin());
+                k = db.insert(titleName, nullColum, values);
+            }
+            db.setTransactionSuccessful();
         } catch (SQLException e) {
-            Log.i("gongpengming", e == null ? "e==null" : e.getMessage());
-            e.printStackTrace();
+            Log.i("gongepngming", e == null ? "空的" : e.getMessage());
+        } finally {
+            db.endTransaction();
         }
+        db.close();
         return k;
     }
 
+    private void delete(String code) {
+        SQLiteDatabase db = helper.getWritableDatabase();
+        String where = "code=?";
+        String[] whereArg = {code};
+        db.delete(titleName, where, whereArg);
+    }
 
-    public Signin query(String code, String date) {
+    public ArrayList<Signin> query() {
+        ArrayList<Signin> beans = new ArrayList<>();
         Signin bean = null;
         SQLiteDatabase db = helper.getReadableDatabase();
         Cursor values = null;
-        String select = "code=? and date=?";
-        String[] columns = {"code", "date", "utime", "dtime", "usigmin", "dsigmin"};
-        if (code == null)
-            code = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
-        if (date == null)
-            date = TimeUtils.s_long_2_str(System.currentTimeMillis());
-        String[] selectArgs = {code, date};
+        String select = "code=?";
+        String[] columns = {"code", "utime", "dtime", "usigmin", "dsigmin"};
+        String code = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
+        String[] selectArgs = {code};
         try {
             values = db.query(titleName, columns, select, selectArgs, null, null, null);
             while (values.moveToNext()) {
                 bean = new Signin();
                 bean.setCode(values.getString(0));
-                bean.setDate(values.getString(1));
-                bean.setUtime(values.getString(2));
-                bean.setDtime(values.getString(3));
-                bean.setUsigmin(values.getString(4));
-                bean.setDsigmin(values.getString(5));
+                bean.setUtime(values.getString(1));
+                bean.setDtime(values.getString(2));
+                bean.setUsigmin(values.getString(3));
+                bean.setDsigmin(values.getString(4));
+                beans.add(bean);
             }
         } catch (SQLException e) {
-            Log.i("gongpengming", e == null ? "e==null" : e.getMessage());
             e.printStackTrace();
         } finally {
             if (values != null)
                 values.close();
-            db.close();
         }
-        return bean;
+        db.close();
+        return beans;
     }
 }

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

@@ -22,6 +22,7 @@ import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
@@ -37,6 +38,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.view.ClearEditText;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -65,15 +67,23 @@ public class BusinessDetailActivty extends BaseActivity {
     private String bc_code;
 
     private EmptyLayout mEmptyLayout;
+
+    private final int CAN_QIANG_NOT = 34;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_business_qiang_activty);
         initView();
-        initData();
+//        initData();
         initListener();
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        initData();
+    }
+
     private void initView() {
         ViewUtils.inject(this);
         mEmptyLayout = new EmptyLayout(this,mlist.getRefreshableView());
@@ -234,12 +244,15 @@ public class BusinessDetailActivty extends BaseActivity {
                 public void onClick(View v) {
                     if (mdata.get(position).getType() == 1) {
                         bc_code = mdata.get(position).getNum();
-                        sendHttpBusinessQiang(BUSINESS_QIANG, bc_code, MyApplication.getInstance().mLoginUser.getNickName());
-                        /*startActivity(new Intent(BusinessDetailActivty.this, BusinessDetailInfoActivity.class)
-                                .putExtra("type", 1)
-                                .putExtra("formCondition", formCondition + "=" + mdata.get(position).getBc_id())
-                                        .putExtra("gridCondition", gridCondition + "=" + mdata.get(position).getBc_id())
-                        );*/
+                        progressDialog.show();
+                        String url = Constants.getAppBaseUrl(ct) + "mobile/crm/ifoverrecv.action";
+                        Map<String,Object> stringMap = new HashMap<String, Object>();
+                        stringMap.put("emcode",CommonUtil.getSharedPreferences(ct, "erp_username"));
+
+                        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+                        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+                        ViewUtil.httpSendRequest(ct, url, stringMap, mHandler, headers, CAN_QIANG_NOT, null, null, "post");
+
                     } else if (mdata.get(position).getType() == 2) {
                         bc_code = mdata.get(position).getNum();
                         startActivityForResult(new Intent(ct, DbfindListActivity.class), 1);
@@ -381,6 +394,17 @@ public class BusinessDetailActivty extends BaseActivity {
                     ToastMessage("分配商机成功!");
                     startActivity(new Intent(ct, BusinessActivity.class));
                     break;
+                case CAN_QIANG_NOT:
+                    JSONObject result = JSON.parseObject(msg.getData().getString("result"));
+                    String isok = result.getString("isok");
+                    if ("0".equals(isok)){
+                        Log.i("qiang", isok);
+                        sendHttpBusinessQiang(BUSINESS_QIANG, bc_code, MyApplication.getInstance().mLoginUser.getNickName());
+                    }else if ("1".equals(isok)){
+                        Log.i("qiang",isok);
+                        progressDialog.dismiss();
+                        Crouton.makeText(BusinessDetailActivty.this,"您已超出最大获取商机数!",0xffff4444,2000).show();
+                    }
             }
         }
     };
@@ -437,7 +461,6 @@ public class BusinessDetailActivty extends BaseActivity {
 
 
     private void sendHttpBusinessQiang(int what, String bc_code, String bc_doman) {
-        progressDialog.show();
         String url = Constants.getAppBaseUrl(ct) + "mobile/crm/updateBusinessChanceDoman.action";
         Map<String, Object> params = new HashMap<>();
         params.put("bc_code", bc_code);

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

@@ -33,6 +33,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.util.DisplayUtil;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -173,7 +174,15 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                 startActivityForResult(intent, 0x11);
                 break;
             case R.id.bt_qiang:
-                sendHttpBusinessQiang(BUSINESS_QIANG, bt_code, bt_doman);
+                progressDialog.show();
+                String url = Constants.getAppBaseUrl(ct) + "mobile/crm/ifoverrecv.action";
+                Map<String,Object> stringMap = new HashMap<String, Object>();
+                stringMap.put("emcode",CommonUtil.getSharedPreferences(ct, "erp_username"));
+
+                LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+                headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+                ViewUtil.httpSendRequest(ct, url, stringMap, mHandler, headers, CAN_QIANG_NOT, null, null, "post");
+
                 break;
             case R.id.bt_fenpei:
                 startActivityForResult(new Intent(ct, DbfindListActivity.class), 1);
@@ -300,6 +309,7 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
     private final int BUSINESS_QIANG = 2;
     private final int BUSINESS_FENPEI = 3;
     private final int BUSINESS_RELEASE = 4;
+    private final int CAN_QIANG_NOT = 30;
 
     private String bt_doman;//跟进人
     private String bt_code;//编号
@@ -349,12 +359,14 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                     // ViewUtil.ToastMessage(ct, msg.getData().getString("result"));
                     progressDialog.dismiss();
                     ToastMessage("抢商机成功!");
-                    startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",1));
+                    finish();
+//                    startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",1));
                     break;
                 case BUSINESS_FENPEI:
                     progressDialog.dismiss();
                     ToastMessage("分配商机成功!");
-                    startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",2));
+                    finish();
+//                    startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",2));
                     break;
                 case BUSINESS_RELEASE:
                     ToastMessage("商机释放成功!");
@@ -362,6 +374,18 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                     popupWindow.dismiss();
                     jumpToStateActivity();
                     break;
+                case CAN_QIANG_NOT:
+                    JSONObject result = JSON.parseObject(msg.getData().getString("result"));
+                    String isok = result.getString("isok");
+                    if ("0".equals(isok)){
+                        Log.i("qiang", isok);
+                        sendHttpBusinessQiang(BUSINESS_QIANG, bt_code, bt_doman);
+                    }else if ("1".equals(isok)){
+                        Log.i("qiang",isok);
+                        progressDialog.dismiss();
+                        Crouton.makeText(BusinessDetailInfoActivity.this, "您已超出最大获取商机数!", 0xffff4444, 2000).show();
+                    }
+
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
                     Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));

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

@@ -843,31 +843,31 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
                 @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                     switch (position) {
-                        case 0:
+                        /*case 0:
                             startActivity(new Intent(ClientActivity.this, ContactManAddActivity.class));
-                            break;
-                        case 1:
+                            break;*/
+                        case 0:
                             startActivity(new Intent(ClientActivity.this, BusinessAddActivity.class));
                             break;
-                        case 2:
+                        case 1:
                             startActivity(new Intent(ClientActivity.this, CustomerAddActivity.class));
                             break;
-                        case 3:
+                        case 2:
                             startActivity(new Intent(ClientActivity.this, TaskAddActivity.class).putExtra("type", 0));
                             break;
-                        case 4:
+                        case 3:
                             startActivity(new Intent(ClientActivity.this, TaskAddActivity.class).putExtra("type", 1));
                             break;
-                        case 5:
+                        /*case 5:
 
-                            break;
-                        case 6:
+                            break;*/
+                        case 4:
                             startActivity(new Intent(ClientActivity.this, VisitReportPlanActivity.class));
                             break;
-                        case 7:
+                        case 5:
                             startActivity(new Intent(ClientActivity.this, VisitReportAddActivity.class));
                             break;
-                        case 8:
+                        case 6:
                             startActivity(new Intent(ClientActivity.this, CustomerAddActivity.class).putExtra("type",1));
                             break;
                     }
@@ -904,8 +904,8 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
     private List<Map<String, Object>> getPopData() {
         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
         Map<String, Object> map = new HashMap<String, Object>();
-        map.put("item_name", "新建联系人");
-        list.add(map);
+        /*map.put("item_name", "新建联系人");
+        list.add(map);*/
 
         map = new HashMap<String, Object>();
         map.put("item_name", "新建商机");
@@ -923,12 +923,14 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         map.put("item_name", "新增日程");
         list.add(map);
 
-        map = new HashMap<String, Object>();
+        /*map = new HashMap<String, Object>();
         map.put("item_name", "新增分享");
-        list.add(map);
+        list.add(map);*/
+
         map = new HashMap<String, Object>();
         map.put("item_name", "拜访计划");
         list.add(map);
+
         map = new HashMap<String, Object>();
         map.put("item_name", "拜访报告");
         list.add(map);

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

@@ -8,10 +8,11 @@ import android.os.Message;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
 import android.widget.TextView;
 
 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;
@@ -79,6 +80,9 @@ public class CustomerDetailActivity extends BaseActivity {
     private TextView  tv_feiyonged;
     @ViewInject(R.id.stepsView)
     private StepsView mStepsView;
+    @ViewInject(R.id.customer_detail_add_plan)
+    private Button mAddPlanBtn;
+
     private Context ct;
     private final String[] labels = {"初次沟通", "立项评估","产品演示", "合同签约", "样品报价", "多次交易"
             , "商务谈判", "需求分析", "完成交易"};
@@ -99,7 +103,14 @@ public class CustomerDetailActivity extends BaseActivity {
     }
 
     private void initListener() {
-
+        mAddPlanBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(CustomerDetailActivity.this,VisitReportPlanActivity.class);
+                startActivity(intent);
+            }
+        });
     }
 
     private void initData() {

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

@@ -36,7 +36,6 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 public class TaskAddActivity extends BaseActivity implements View.OnClickListener {
-
     @ViewInject(R.id.tv_name)
     private FormEditText tv_name;
     @ViewInject(R.id.tv_executive)
@@ -148,13 +147,8 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
                     ToastMessage("保存成功!");
                     if (!StringUtils.isEmpty(code))
                         setCodeByNet(code);
-                    if ("会议任务".equals(tv_name.getText().toString().trim())) {
-                        Intent intent = new Intent();
-//                        intent.putExtra()
-                        setResult(0x11, intent);
-                        finish();
-                    }
-//                    finish();
+                    else
+                        endActivity();
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
@@ -162,9 +156,8 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
                     ToastMessage("保存异常!");
                     break;
                 case endCodeWhat:
-                    Log.i("gongpengming", msg.getData().getString("result"));
                     ToastMessage("保存上传成功!");
-
+                    endActivity();
                     break;
                 case codeWhat://获取编号
                     progressDialog.dismiss();
@@ -174,6 +167,13 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
         }
     };
 
+    private void endActivity() {
+        Intent intent = new Intent();
+        intent.putExtra("data", "data");
+        setResult(0x20, intent);
+        finish();
+    }
+
     private void sendHttpResquest(int what) {
         progressDialog.show();
         String str = "";

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

@@ -1,6 +1,7 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.crm;
 
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -8,6 +9,7 @@ import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -18,6 +20,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.OABean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.ViewUtil;
@@ -42,8 +45,8 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
 
     @ViewInject(R.id.tv_address_login)
     private FormEditText tv_address_login;
-    @ViewInject(R.id.tv_visit_steps)
-    private FormEditText tv_visit_steps;
+    @ViewInject(R.id.tv_address_refresh)
+    private TextView tv_address_refresh;
     @ViewInject(R.id.tv_customer_login)
     private FormEditText tv_customer_login;
     @ViewInject(R.id.tv_linksman_login)
@@ -55,10 +58,12 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     private FormEditText tv_date_end;
     @ViewInject(R.id.tv_visit_theme)
     private FormEditText tv_visit_theme;
+    @ViewInject(R.id.tv_visit_steps)
+    private FormEditText tv_visit_steps;
     @ViewInject(R.id.tv_visit_content)
     private FormEditText tv_visit_content;
-//    @ViewInject(R.id.tv_notes_login)
-//    private FormEditText tv_notes_login;
+    private int vp_id = -1;
+    private int type = -1;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -77,7 +82,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     }
 
     private void initListener() {
-        tv_visit_steps.setOnClickListener(this);
+        tv_address_refresh.setOnClickListener(this);
         tv_date_start.setOnClickListener(this);
         tv_date_end.setOnClickListener(this);
         tv_date_start.setKeyListener(null);
@@ -86,9 +91,9 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     }
 
     private void initData() {
-        getCodeByNet();
         OABean bean = getIntent().getParcelableExtra("data");
         if (bean == null) return;
+        vp_id = bean.getVp_id();
         tv_date_end.setText(bean.getEnddate() == null ? "未填写" : bean.getEnddate());
         tv_customer_login.setText(bean.getClient() == null ? "未填写" : bean.getClient());
         tv_linksman_login.setText(bean.getVp_contact() == null ? "未填写" : bean.getVp_contact());
@@ -107,7 +112,12 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.btn_save:
-                sendHttpResquest(Constants.HTTP_SUCCESS_INIT);
+                CodeUtil.getInstance().getCode(ct, "VisitRecord", new CodeUtil.OnCodeLinstener() {
+                    @Override
+                    public void callBack(String code) {
+                        sendHttpResquest(Constants.HTTP_SUCCESS_INIT, code);
+                    }
+                });
                 break;
             case android.R.id.home:
                 onBackPressed();
@@ -116,6 +126,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         return true;
     }
 
+
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -124,16 +135,21 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                     progressDialog.dismiss();
                     Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));
                     ToastMessage("保存成功!");
+                    //更新接口
+                    if (vp_id != -1)
+                        updataCode();
+                    else
+                        endActivity();
+                    break;
+                case 0x16://更新状态接口
+                    ToastMessage("更新成功!");
+                    endActivity();
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
                     Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));
                     ToastMessage(msg.getData().getString("result"));
                     break;
-                case codeWhat://获取编号
-                    progressDialog.dismiss();
-                    tv_code = JSON.parseObject(msg.getData().getString("result")).getString("code");
-                    break;
                 case 3:
                     progressDialog.dismiss();
                     lists.clear();
@@ -154,15 +170,22 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         }
     };
 
-    private void sendHttpResquest(int what) {
+    private void endActivity() {
+        Intent intent = new Intent();
+        intent.putExtra("data", "data");
+        setResult(0x20, intent);
+        finish();
+    }
+
+    private void sendHttpResquest(int what, String code) {
         String formStore = "";
         if (tv_date_start.testValidity() && tv_date_end.testValidity()
                 && tv_customer_login.testValidity() && tv_linksman_login.testValidity()
                 && tv_address_login.testValidity() && tv_visit_theme.testValidity()
-                && tv_visit_steps.testValidity() && tv_visit_content.testValidity()){
+                && tv_visit_steps.testValidity() && tv_visit_content.testValidity()) {
             formStore =
                     "{\n" +
-                            "\"vr_code\":\"" + tv_code
+                            "\"vr_code\":\"" + code
                             + "\",\n" +
                             "\"vr_visittime\":\""
                             + tv_date_start.getText().toString() + //开始时间
@@ -195,7 +218,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                             tv_date_end.getText().toString() +//结束时间
                             "\"\n" +
                             "}";
-        }else {
+        } else {
             return;
         }
         progressDialog.show();
@@ -245,7 +268,6 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         }
     }
 
-
     private void showDateDialog(final FormEditText tv) {
         DatePicker picker = new DatePicker(this);
         picker.setRange(1950, 2030);
@@ -270,23 +292,29 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         });
         picker.show();
     }
+//    private void getCodeByNet() {
+//        String url = Constants.getAppBaseUrl(ct) + "mobile/crm/updateVistPlan.action";
+//        final Map<String, Object> param = new HashMap<>();
+//        String caller = "VisitRecord";
+//        param.put("caller", caller);
+//        param.put("type", 2);
+//        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+//        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+//        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+//        ViewUtil.httpSendRequest(ct, url, param, mHandler, headers, codeWhat, null, null, "post");
+//    }
 
-    private static final int codeWhat = 0x11;
-    private String tv_code;
-
-    private void getCodeByNet() {
-        String url = Constants.getAppBaseUrl(ct) + "common/getCodeString.action";
+    //更新
+    private void updataCode() {
+        progressDialog.show();
+        String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") + "mobile/crm/updateVistPlan.action";
         final Map<String, Object> param = new HashMap<>();
-        String caller = "VisitRecord";
-        param.put("caller", caller);
-        param.put("type", 2);
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        param.put("vp_id", vp_id);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, mHandler, headers, codeWhat, null, null, "post");
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
+        com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.httpSendRequest(this, url, param, mHandler, headers, 0x16, null, null, "post");
     }
 
-
     private void loadCustomer(int what) {
         progressDialog.show();
         String url = Constants.getAppBaseUrl(ct) + "mobile/crm/getCustomerbySeller.action";

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

@@ -1,5 +1,6 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.crm;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -16,7 +17,6 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.oa.OABean;
 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.Constants;
@@ -120,6 +120,7 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
                     progressDialog.dismiss();
                     Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));
                     ToastMessage("保存成功!");
+                    endActivity();
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
@@ -212,7 +213,12 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
         ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, what, null, null, "post");
     }
 
-
+    private void endActivity() {
+        Intent intent = new Intent();
+        intent.putExtra("data", "data");
+        setResult(0x20, intent);
+        finish();
+    }
     private void showDateDialog(final FormEditText tv) {
         DatePicker picker = new DatePicker(this);
         picker.setRange(1950, 2030);

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

@@ -172,7 +172,7 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
      */
     private void showTagSelect() {
         android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(ct);
-        builder.setTitle("选择微调距离");
+        builder.setTitle("选择会议标签");
         //    指定下拉列表的显示数据
         final String[] cities = {"培训会议", "动员大会", "部门会议", "周例会", "月度总结会议", "管理层会议"};
         //    设置一个下拉的列表选择项
@@ -228,10 +228,10 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         for (int i = 0; i < entities.size(); i++) {
             if (i == 0) {
                 builder.append(entities.get(i).getName());
-                builderId.append("employee#" + entities.get(i).getImId());
+                builderId.append("employee#" + entities.get(i).getEmId());
             } else {
                 builder.append(";" + entities.get(i).getName());
-                builderId.append(";employee#" + entities.get(i).getImId());
+                builderId.append(";employee#" + entities.get(i).getEmId());
             }
         }
         doSignin(builder.toString(), builderId.toString(), code);

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

@@ -10,10 +10,15 @@ import android.content.Intent;
 import android.support.v7.app.NotificationCompat;
 
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.oa.Signin;
+import com.xzjmyk.pm.activity.db.dao.SigninDao;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 
+import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * AlarmReceiver
@@ -54,10 +59,8 @@ public class AlarmReceiver extends BroadcastReceiver {
         PendingIntent pendingIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
         builder.setContentIntent(pendingIntent);
         mNotificationManager.notify(1000, builder.build());
-
         //设置签到提醒
         initArmmanager(context, isAlar);
-
     }
 
     private void setArmmanager(Context context, Calendar calendar, boolean isAlar) {
@@ -82,25 +85,61 @@ public class AlarmReceiver extends BroadcastReceiver {
     /**
      * 设置下一次提醒
      *
-     * @param context context
-     * @param isAlar  需要提醒为上班还是下班,如果前一次为上班提醒,则为下班,如果前一次为下班,则为下班
+     * @param isAlar 需要提醒为上班还是下班,如果前一次为上班提醒,则为下班,如果前一次为下班,则为下班
      */
-    private void initArmmanager(Context context, boolean isAlar) {
-        //先判断两个(上下班)的提醒那个距离当前时间最近
-        //将上下班时间设置为今天时间
-        String dateTime = "";
-        if (isAlar) {//要设置上班提醒
-            dateTime = CommonUtil.getSharedPreferences(context, AlarmaActivity.KEY_ALAR_TIME);//获取上班时间
-        } else {
-            dateTime = CommonUtil.getSharedPreferences(context, AlarmaActivity.KEY_UALAR_TIME);//获取下班时间
+    private void initArmmanager(Context ct, boolean isAlar) {
+        //1.获取打卡时间
+        ArrayList<Signin> signins = SigninDao.getInstance(ct).query();
+        if (signins == null) return;
+        //判断最近的时间是哪个
+        //获取提前和往后提醒时间
+        int uTime = getMin(CommonUtil.getSharedPreferences(ct, AlarmaActivity.KEY_ALAR_TIME));
+        int dTime = getMin(CommonUtil.getSharedPreferences(ct, AlarmaActivity.KEY_UALAR_TIME));
+        long utime = System.currentTimeMillis();
+        long dtime = System.currentTimeMillis();
+        if (uTime != 0) {
+            utime = System.currentTimeMillis() - (uTime * 60 * 1000) + (30 * 60 * 1000);
+        }
+        if (dTime != 0) {
+            dtime = System.currentTimeMillis() + (dTime * 60 * 1000) + (30 * 60 * 1000);
         }
-        if (dateTime == null || dateTime.length() <= 0) return;//异常处理
-        int[] hm = getHourAndM(dateTime);
-        String time = getTimeFormat(hm[0], hm[1]);
-        long timeLong = TimeUtils.f_str_2_long(time);
         Calendar c = Calendar.getInstance();
-        c.setTimeInMillis(timeLong);
-        setArmmanager(context, c, isAlar);
+        long chche = 0;//时间毫秒数
+        boolean isOk = false;
+        for (Signin e : signins) {
+            if (e.getUtime() != null && e.getUtime().length() > 0)
+                chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getUtime() + ":00");
+            if (chche > utime) {//当前时间大于选定的班次的上班时间
+                isOk = true;
+                //TODO
+                c.setTimeInMillis(chche);
+                break;
+            }
+            if (e.getDtime() != null && e.getDtime().length() > 0)
+                chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getUtime() + ":00");
+            if (chche > dtime) {//当前时间大于选定的班次的下班时间
+                isOk = true;
+                //TODO
+                c.setTimeInMillis(chche);
+                break;
+            }
+        }
+        if (!isOk) {//在班次时间内
+            chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + signins.get(0).getUtime() + ":00");
+            chche += 24 * 60 * 60 * 1000;
+            c.setTimeInMillis(chche);
+        }
+        setArmmanager(ct, c, isAlar);
+    }
+
+    private int getMin(String chche) {
+        if (chche == null || chche.length() <= 0) return 0;
+        Pattern p = Pattern.compile("(\\d+)");
+        Matcher m = p.matcher(chche);
+        if (m.find()) {
+            return Integer.parseInt(m.group(0));
+        }
+        return -1;
     }
 
     private int[] getHourAndM(String temp) {

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

@@ -2,22 +2,28 @@ package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
 import android.app.AlarmManager;
 import android.app.PendingIntent;
-import android.app.TimePickerDialog;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
-import android.widget.TimePicker;
 
 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.Signin;
+import com.xzjmyk.pm.activity.db.dao.SigninDao;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.SwitchView;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 
+import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 //签到提醒
 public class AlarmaActivity extends BaseActivity implements View.OnClickListener {
@@ -30,14 +36,10 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
 
     private boolean isClick;//判断是否为提醒
     private AlarmaActivity ct;
-    private String uDateTime;
-    private String dDateTime;
-
 
     private static String ALARMA_CLICK = "ALARMA_CLICK";//判断是否选中
-    public static String KEY_ALAR_ACTION = "KEY_ALAR_ACTION";//发送上班
-    public static String KEY_NEXT_ALAR = "KEY_NEXT_ALAR";//下次打卡时间
 
+    public static String KEY_ALAR_ACTION = "KEY_ALAR_ACTION";//发送上班
     public static String KEY_UALAR_ACTION = "KEY_UALAR_ACTION";//发送下班提醒
     public static String KEY_ALAR_TIME = "KEY_ALAR_TIME";
     public static String KEY_UALAR_TIME = "KEY_UALAR_TIME";
@@ -52,23 +54,24 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
     }
 
     private void initView() {
+        getDataByDB();
         //初始化界面显示时间
         tv_alar.setOnClickListener(this);
         tv_ualar.setOnClickListener(this);
         isClick = CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK, false);
         isalarma_sw.setChecked(isClick);
-        uDateTime = CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME);
-        dDateTime = CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME);
+        String uDateTime = CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME);
+        String dDateTime = CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME);
         if (uDateTime == null) {
-            uDateTime = getTimeFormat(8, 30);
+            uDateTime = "提前5分钟";
+            CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, uDateTime);
         }
         if (dDateTime == null) {
-            dDateTime = getTimeFormat(18, 0);
+            dDateTime = "延后5分钟";
+            CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, dDateTime);
         }
-        int[] u = getHourAndM(uDateTime);
-        int[] d = getHourAndM(dDateTime);
-        tv_alar.setText((u[0] < 10 ? "0" : "") + u[0] + ":" + (u[1] < 10 ? "0" : "") + u[1]);
-        tv_ualar.setText((d[0] < 10 ? "0" : "") + d[0] + ":" + (d[1] < 10 ? "0" : "") + d[1]);
+        tv_alar.setText(uDateTime);
+        tv_ualar.setText(dDateTime);
         if (isClick) {
             startThread(isClick);
         }
@@ -96,34 +99,77 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
         }).start();
     }
 
+    //获取打卡时间从数据库
+    private void getDataByDB() {
+        ArrayList<Signin> signins = SigninDao.getInstance(ct).query();
+        for (Signin e : signins) {
+            Log.i("gongpengming", "e.getCode()=" + e.getCode() == null ? "空的" : e.getCode());
+            Log.i("gongpengming", "e.getUtime()=" + e.getUtime() == null ? "空的" : e.getUtime());
+            Log.i("gongpengming", "e.getDtime()=" + e.getDtime() == null ? "空的" : e.getDtime());
+            Log.i("gongpengming", "e.getUsigmin()=" + e.getUsigmin() == null ? "空的" : e.getUsigmin());
+            Log.i("gongpengming", "e.getDsigmin()=" + e.getDsigmin() == null ? "空的" : e.getDsigmin());
+        }
+    }
+
     //初始化提醒
     private void initArmmanager() {
-        //先判断两个(上下班)的提醒那个距离当前时间最近
-        //将上下班时间设置为今天时间
-        int[] u = getHourAndM(uDateTime);
-        int[] d = getHourAndM(dDateTime);
-        uDateTime = getTimeFormat(u[0], u[1]);
-        dDateTime = getTimeFormat(d[0], d[1]);
-        //比较两个时间大小
-        long uLong = TimeUtils.f_str_2_long(uDateTime);
-        long dLong = TimeUtils.f_str_2_long(dDateTime);
-        long newLong = System.currentTimeMillis();
-        long dayLong = 1000 * 60 * 60 * 24;//一天的毫秒量
+        //1.获取打卡时间
+        ArrayList<Signin> signins = SigninDao.getInstance(ct).query();
+        if (signins == null) return;
+        //判断最近的时间是哪个
+        //获取提前和往后提醒时间
+        int uTime = getMin(CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME));
+        int dTime = getMin(CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME));
+        long utime = System.currentTimeMillis();
+        long dtime = System.currentTimeMillis();
+        if (uTime != 0) {
+            utime = System.currentTimeMillis() - (uTime * 60 * 1000);
+        }
+        if (dTime != 0) {
+            dtime = System.currentTimeMillis() + (dTime * 60 * 1000);
+        }
         Calendar c = Calendar.getInstance();
+
+        long chche = 0;//时间毫秒数
+        boolean isOk = false;
         boolean isAlar = false;
-        if (uLong > newLong) {//还没到上班打卡提醒时间
-            isAlar = true;
-            c.setTimeInMillis(uLong);
-        } else if (dLong > newLong) {//过了上班提醒时间,但是没过下班提醒时间
-            isAlar = false;
-            c.setTimeInMillis(dLong);
-        } else if (dLong < newLong) {//今天的提醒时间已经过了
-            isAlar = false;
-            c.setTimeInMillis(uLong + dayLong);
+        for (Signin e : signins) {
+            if (e.getUtime() != null && e.getUtime().length() > 0)
+                chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getUtime() + ":00");
+            if (chche > utime) {//当前时间大于选定的班次的上班时间
+                isAlar = isOk = true;
+                //TODO
+                c.setTimeInMillis(chche);
+                break;
+            }
+            if (e.getDtime() != null && e.getDtime().length() > 0)
+                chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getUtime() + ":00");
+            if (chche > dtime) {//当前时间大于选定的班次的下班时间
+                isOk = true;
+                isAlar = false;
+                //TODO
+                c.setTimeInMillis(chche);
+                break;
+            }
+        }
+        if (!isOk) {//在班次时间内
+            chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + signins.get(0).getUtime() + ":00");
+            chche += 24 * 60 * 60 * 1000;
+            c.setTimeInMillis(chche);
         }
         setArmmanager(c, isAlar);
     }
 
+    private int getMin(String chche) {
+        if (chche == null || chche.length() <= 0) return 0;
+        Pattern p = Pattern.compile("(\\d+)");
+        Matcher m = p.matcher(chche);
+        if (m.find()) {
+            return Integer.parseInt(m.group(0));
+        }
+        return -1;
+    }
+
     private void setArmmanager(Calendar calendar, boolean isAlar) {
         //操作:发送一个广播,广播接收后Toast提示定时操作完成
         Intent intent = new Intent(AlarmaActivity.this, AlarmReceiver.class);
@@ -153,63 +199,52 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
         alarm.cancel(pi);
     }
 
-    private int[] getHourAndM(String temp) {
-        int[] time = new int[2];
-        Calendar c = Calendar.getInstance();
-        c.setTimeInMillis(TimeUtils.f_str_2_long(temp));
-        time[0] = c.get(Calendar.HOUR_OF_DAY);
-        time[1] = c.get(Calendar.MINUTE);
-        return time;
-    }
-
-    private String getTimeFormat(int hh, int mm) {
-        String h = (hh < 10 ? "0" : "") + hh;
-        String m = (mm < 10 ? "0" : "") + mm;
-        String temp = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + h + ":" + m + ":" + "00";
-        return temp;
-    }
-
-    /**
-     * 显示时间选择器
-     *
-     * @param tv     修改显示的Textview
-     * @param isAlar 是否是上班提醒
-     */
-    private void showSelectDalog(final TextView tv, final boolean isAlar) {
-        Calendar calendar = Calendar.getInstance();
-        int hour = calendar.get(Calendar.HOUR_OF_DAY);
-        int minute = calendar.get(Calendar.MINUTE);
-        TimePickerDialog dialog = new TimePickerDialog(AlarmaActivity.this, new TimePickerDialog.OnTimeSetListener() {
+    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 onTimeSet(TimePicker timePicker, int hh, int mm) {
-                String temp;
-                if (isAlar) {
-                    //上班提醒
-                    uDateTime = getTimeFormat(hh, mm);
-                    CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, uDateTime);//保存上班签到的
-                    temp = uDateTime;
+            public void onClick(DialogInterface dialogInterface, int i) {
+                tv.setText(str[i]);
+                if (isU) {
+                    CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, str[i]);//保存上班签到的
                 } else {
-                    dDateTime = getTimeFormat(hh, mm);
-                    CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, dDateTime);//保存下班签到的时间
-                    temp = dDateTime;
+                    CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, str[i]);//保存下班班签到的
+
                 }
-                int[] u = getHourAndM(temp);
-                tv.setText((u[0] < 10 ? "0" : "") + u[0] + ":" + (u[1] < 10 ? "0" : "") + u[1]);
-                startThread(CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK));
             }
-
-        }, hour, minute, true);
-        dialog.show();
+        });
+        builder.show();
     }
 
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.tv_ualar:
-                showSelectDalog(tv_alar, true);
+                showSelectDalog(tv_ualar, true);
                 break;
             case R.id.tv_alar:
-                showSelectDalog(tv_ualar, false);
+                showSelectDalog(tv_alar, false);
                 break;
         }
     }
@@ -218,9 +253,7 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
     protected void onDestroy() {
         super.onDestroy();
         //退出时候保存时间到本地
-        String ti = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + tv_alar.getText().toString().trim() + ":00";
-        String me = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + tv_ualar.getText().toString().trim() + ":00";
-        CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, ti);//保存上班签到的
-        CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, me);//保存下班签到的时间
+        CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, tv_alar.getText().toString().trim());//保存上班签到的
+        CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, tv_ualar.getText().toString().trim());//保存下班签到的时间
     }
 }

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

@@ -93,7 +93,7 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
                         array = numlist.getJSONArray("confirmed");
                         if (array != null && array.size() > 0) {
                             confirmed = array.size();
-                            for (int i = 0; i <= confirmed; i++)
+                            for (int i = 0; i < confirmed; i++)
                                 if (array.getJSONObject(i).containsKey("EM_CODE") && code.equals(array.getJSONObject(i).getString("EM_CODE"))) {
                                     isPlay = false;
                                     click_btn.setPressed(true);
@@ -169,7 +169,6 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
     }
 
     String baseUrl;
-
     private void updataUI() {
         if (object == null) return;
         name_tv.setText(object.getString("ma_theme"));

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

@@ -6,6 +6,7 @@ import android.os.Handler;
 import android.os.Message;
 import android.text.Editable;
 import android.text.TextWatcher;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -18,16 +19,18 @@ import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.MeetEntity;
 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.view.EmptyLayout;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.ClearEditText;
-import com.xzjmyk.pm.activity.view.SuperSwipeRefreshLayout;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -38,24 +41,26 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 public class MeetingActivity extends BaseActivity {
-    private static final int PAGE_SIZE = 10;
-    private MeetingActivity activity = this;
-    private ListView listView;
-    private EmptyLayout mEmptyLayout;
-    private SuperSwipeRefreshLayout swiperefresh;
-    private MesstingAdapter adapter;
-    private ClearEditText search_edit;
-    private List<MeetEntity> entities;//网络获取来的item总数
-    private String baseUrl;
+    private static final int PAGE_SIZE = 100;
     private final int whatLoad = 0x11;
     private int requestCode = 0x13;
     private int basePager = 1;
+
+    @ViewInject(R.id.list_business)
+    private PullToRefreshListView list_business;
+    @ViewInject(R.id.search_edit)
+    private ClearEditText search_edit;
+
+
+    private MesstingAdapter adapter;
+    private List<MeetEntity> entities;//网络获取来的item总数
+    private String baseUrl;
+
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             progressDialog.dismiss();
-            swiperefresh.setRefreshing(false);
-            swiperefresh.setLoadMore(false);
+            list_business.setRefreshing(false);
             String message = (String) msg.getData().get("result");
             switch (msg.what) {
                 case whatLoad:
@@ -80,6 +85,8 @@ public class MeetingActivity extends BaseActivity {
         if (entities == null)
             entities = listdata;
         else entities.addAll(listdata);
+        adapter = new MesstingAdapter();
+        list_business.getRefreshableView().setAdapter(adapter);
         adapter.setData(entities);
     }
 
@@ -87,27 +94,41 @@ public class MeetingActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_meeting);
+        ViewUtils.inject(this);
         baseUrl = CommonUtil.getSharedPreferences(ct, "erp_baseurl");
         getSupportActionBar().setTitle("会议助手");
         initView();
         listener();
     }
 
-
     private void initView() {
-        search_edit = (ClearEditText) findViewById(R.id.search_edit);
-        listView = (ListView) findViewById(R.id.listview);
-        mEmptyLayout = new EmptyLayout(ct, listView);
-        swiperefresh = (SuperSwipeRefreshLayout) findViewById(R.id.swiperefresh);
-        swiperefresh.setHeaderView(LayoutInflater.from(ct).inflate(R.layout.head_view, null));
-        swiperefresh.setFooterView(LayoutInflater.from(ct).inflate(R.layout.head_view, null));
-        adapter = new MesstingAdapter();
-        listView.setAdapter(adapter);
+        list_business.setEmptyView(R.layout.view_empty);
+
         progressDialog.show();
         loadNetData(basePager);
     }
 
     private void listener() {
+        list_business.setMode(PullToRefreshBase.Mode.BOTH);
+        list_business.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+//                if (entities != null) entities.clear();
+////                search_edit.setText("");
+//                loadNetData(1);
+                Log.i("gongpengming", "onPullDownToRefresh");
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+//                if (entities != null) entities.clear();
+////                search_edit.setText("");
+//                loadNetData(basePager + 1);
+                Log.i("gongpengming", "onPullUpToRefresh");
+            }
+        });
+
+
         search_edit.addTextChangedListener(new TextWatcher() {
             @Override
             public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
@@ -131,7 +152,7 @@ public class MeetingActivity extends BaseActivity {
                 adapter.setData(chche);
             }
         });
-        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+        list_business.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                 Intent intent = new Intent(MeetingActivity.this, MeetDetailsActivity.class);
@@ -142,41 +163,8 @@ public class MeetingActivity extends BaseActivity {
                 startActivityForResult(intent, requestCode);
             }
         });
-        swiperefresh.setOnPullRefreshListener(new SuperSwipeRefreshLayout.OnPullRefreshListener() {
-            @Override
-            public void onRefresh() {
-                if (entities != null) entities.clear();
-                search_edit.setText("");
-                loadNetData(1);
-            }
-
-            @Override
-            public void onPullDistance(int distance) {
-
-            }
 
-            @Override
-            public void onPullEnable(boolean enable) {
 
-            }
-        });
-        swiperefresh.setOnPushLoadMoreListener(new SuperSwipeRefreshLayout.OnPushLoadMoreListener() {
-            @Override
-            public void onLoadMore() {
-                search_edit.setText("");
-                loadNetData(basePager + 1);
-            }
-
-            @Override
-            public void onPushDistance(int distance) {
-
-            }
-
-            @Override
-            public void onPushEnable(boolean enable) {
-
-            }
-        });
     }
 
     //正则
@@ -209,7 +197,7 @@ public class MeetingActivity extends BaseActivity {
         String sessionId = CommonUtil.getSharedPreferences(ct, "sessionId");
         String caller = "Meetingroomapply";
         //TODO 添加限制
-        String condition = "MA_STATUSCODE='AUDITED'and MD_EMCODE=" + "\'" + emcode + "\'";
+        String condition = "MD_EMCODE=" + "\'" + emcode + "\'";
 //        String condition = "1=1";
         final Map<String, Object> param = new HashMap<>();
         param.put("caller", caller);
@@ -237,9 +225,6 @@ public class MeetingActivity extends BaseActivity {
 
         public void setData(List<MeetEntity> entities) {
             this.entities = entities;
-            if (entities == null || entities.size() <= 0) {
-                mEmptyLayout.showEmpty();
-            }
             notifyDataSetChanged();
         }
 
@@ -331,9 +316,8 @@ public class MeetingActivity extends BaseActivity {
             if (resultCode == 0x14) {
                 if ("data".equals(data.getStringExtra("data"))) {
                     //TODO 刷新
-                    swiperefresh.setLoadMore(true);
+                    list_business.setRefreshing(true);
                     loadNetData(1);
-
                 }
             } else if (resultCode == 0x15) {
                 int i = data.getIntExtra("item", -1);

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

@@ -51,6 +51,8 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class OAActivity extends BaseActivity implements View.OnClickListener {
     private final int WHAT_LOAD = 0x11;
@@ -131,7 +133,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
         setTaskDay(tag == 1 ? meBeans : otherBeans);
     }
 
-    private void setTaskDay(ArrayList<OABean> beans) {
+    private void setTaskDay(List<OABean> beans) {
         Calendar c = Calendar.getInstance();
         ArrayList<Integer> tasks = new ArrayList<>();
         for (OABean b : beans) {
@@ -173,7 +175,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_oa);
         ViewUtils.inject(this);
-        getSupportActionBar().setTitle("OA");
+        getSupportActionBar().setTitle("自动化办公");
         initView();
     }
 
@@ -192,6 +194,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
         return super.onOptionsItemSelected(item);
     }
 
+
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
@@ -199,25 +202,34 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
             MeetUserEntity entity = data.getParcelableExtra("data");
             if (entity == null || entity.getName() == null) return;
             my_client_log.setText(entity.getName());
-            //TODO 获取到下属的信息并处理内容
-            List<OABean> beans = adapter.getBeans();
+            //下属选项
+            if (otherBeans == null) {
+                adapter.setBeans(new ArrayList<OABean>());
+                return;
+            }
             List<OABean> chche = new ArrayList<>();
-            String code = entity.getEmCode();
-            if (code == null) return;
-            for (OABean e : beans) {
-                if (e.getResourcecode() != null) {//任务日程
-                    if (code.equals(e.getResourcecode())) {//是该下属任务日程
+            String name = entity.getName().trim();
+            if (name == null) return;
+            String nameStr;
+            for (OABean e : otherBeans) {
+                if (e.getHandler() != null) {//任务日程
+                    if (e.getHandler() == null || e.getHandler().length() <= 0) continue;
+                    nameStr = "," + e.getHandler().trim() + ",";
+                    if (getResult(nameStr, name)) {//是该下属任务日程
                         chche.add(e);
                     }
-                } else if (e.getVp_visitmancode() != null) {//拜访
-                    if (code.equals(e.getVp_visitmancode())) {//是该下属拜访计划
+                } else if (e.getRecordman() != null) {//拜访
+                    if (e.getRecordman() == null || e.getRecordman().length() <= 0) continue;
+                    nameStr = "," + e.getRecordman().trim() + ",";
+                    if (getResult(nameStr, name)) {//是该下属任务日程
                         chche.add(e);
                     }
                 }
             }
+            setTaskDay(chche);
             adapter.setBeans(chche);
         }
-        if (requestCode == 0x12 && 0x12 == resultCode) {
+        if (requestCode == 0x20 && 0x20 == resultCode) {
             loadNetData();
         }
     }
@@ -305,6 +317,13 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
         ViewUtil.httpSendRequest(this, url, param, handler, headers, WHAT_LOAD, null, null, "get");
     }
 
+    private boolean getResult(String text, String str) {
+        Pattern p = Pattern.compile(str);
+        Matcher m = p.matcher(text);
+        return m.find();
+    }
+
+
     //需要抽取的代码
     private PopupWindow popupWindow = null;
 
@@ -342,7 +361,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                             break;
                     }
                     if (intent != null)
-                        startActivityForResult(intent, 0x12);
+                        startActivityForResult(intent, 0x20);
                 }
             });
             popupWindow = new PopupWindow(view, windowManager.getDefaultDisplay().getWidth() / 3, windowManager.getDefaultDisplay().getHeight() / 3);
@@ -410,7 +429,14 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                 int noOk = 0;
                 List<OABean> beans = new ArrayList<>();
                 try {// meBeans : otherBeans 可能为空
-                    for (OABean e : (tag == 1 ? meBeans : otherBeans)) {
+//                    for (OABean e : (tag == 1 ? meBeans : otherBeans)) {
+                    List<OABean> b;
+                    if (tag == 1) {
+                        b = meBeans == null ? new ArrayList<OABean>() : meBeans;
+                    } else {
+                        b = otherBeans == null ? new ArrayList<OABean>() : otherBeans;
+                    }
+                    for (OABean e : b) {
                         if (e.getStartdate() == null) continue;
                         c.setTimeInMillis(TimeUtils.f_str_2_long(e.getStartdate()));
                         int day = c.get(Calendar.DAY_OF_MONTH);
@@ -443,6 +469,9 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
      */
     private void chaneTAG(boolean isMy) {
         if (isMy) {
+            if (!my_client_log.getText().toString().trim().equals("下属工作日志")) {
+                my_client_log.setText("下属工作日志");
+            }
             tag = 1;
             ok_scale.setVisibility(View.GONE);
             my_log_tag.setBackgroundResource(R.color.darkorange);
@@ -523,7 +552,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                     if (chche.getType() == 3) {
                         intent = new Intent(activity, VisitReportAddActivity.class);
                         intent.putExtra("data", chche);
-                        startActivityForResult(intent, 1);
+                        startActivityForResult(intent, 0x20);
                     } else if (chche.getType() == 1 || chche.getType() == 2) {
                         intent = new Intent(ct, DetailTaskActivity.class);
                         intent.putExtra("description", chche.getDescription());
@@ -568,21 +597,19 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
             } else {
                 viewholder.item_remak.setText("");
             }
-
             if (chche.getStatus() != null) {//状态
                 viewholder.item_status_tv.setText(chche.getStatus());
             } else {
                 viewholder.item_status_tv.setText("");
             }
+            if (chche.getStartdate() != null) {//开始时间
 
-            if (chche.getTaskcode() != null) {//地址
-                viewholder.item_addr_tv.setText(chche.getTaskcode());
-            } else if (chche.getAddress() != null) {
+                viewholder.item_addr_tv.setText(chche.getStartdate() == null ? "未填写" : chche.getStartdate());
+            } else if (chche.getAddress() != null) {//地址
                 viewholder.item_addr_tv.setText(chche.getAddress());
             } else {
                 viewholder.item_addr_tv.setText("");
             }
-
             if (chche.getHandler() != null) {//对象
                 viewholder.item_object_tv.setText(chche.getHandler());
             } else if (chche.getDepartment() != null || chche.getRecordman() != null) {
@@ -592,8 +619,6 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                 viewholder.item_object_tv.setText("");
             }
 
-            //处理去拜访的按钮
-
         }
 
         class Viewholder {

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

@@ -0,0 +1,125 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.oa;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public class OAListActivity extends BaseActivity {
+
+    private Handler handler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            progressDialog.dismiss();
+            String message = (String) msg.getData().get("result");
+            if (msg.what == 0x13) {
+                listview.setAdapter(new SigninAdapter(JSON.parseObject(message).getJSONArray("listdata")));
+            }
+        }
+    };
+    private ListView listview;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_oalist);
+        initView();
+    }
+
+    //获取打卡记录 date:yyyy-MM-dd
+    private void loadLog() {
+        progressDialog.show();
+        //获取网络数据
+        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/common/list.action";
+        String emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
+        final Map<String, Object> param = new HashMap<>();
+        param.put("currentMaster", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        param.put("page", 1);
+        param.put("pageSize", 1000);
+        param.put("emcode", emcode);
+        param.put("condition", "mo_mancode='" + emcode + "' and to_char(mo_signtime,'yyyy-MM-dd')='" + TimeUtils.s_long_2_str(System.currentTimeMillis()) + "'");
+        param.put("caller", "Mobile_outsign");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        com.xzjmyk.pm.activity.ui.erp.util.ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x13, null, null, "get");
+    }
+
+    private void initView() {
+        JSONArray array = getIntent().getParcelableExtra("data");
+        listview = (ListView) findViewById(R.id.listview);
+        if (array == null || array.size() <= 0)
+            loadLog();
+        else
+            listview.setAdapter(new SigninAdapter(array));
+    }
+
+    class SigninAdapter extends BaseAdapter {
+        private JSONArray json;
+
+        public SigninAdapter(JSONArray json) {
+            this.json = json;
+        }
+
+        @Override
+        public int getCount() {
+            return json == null ? 0 : json.size();
+        }
+
+        @Override
+        public Object getItem(int i) {
+            return json.get(i);
+        }
+
+        @Override
+        public long getItemId(int i) {
+            return i;
+        }
+
+        @Override
+        public View getView(int i, View view, ViewGroup viewGroup) {
+            ViewHolder holder = null;
+            if (view == null) {
+                holder = new ViewHolder();
+                view = LayoutInflater.from(ct).inflate(R.layout.item_outoffice_list, null);
+                holder.time = (TextView) view.findViewById(R.id.time);
+                holder.name = (TextView) view.findViewById(R.id.name);
+                holder.addr = (TextView) view.findViewById(R.id.addr);
+                holder.company = (TextView) view.findViewById(R.id.company);
+                view.setTag(holder);
+            } else {
+                holder = (ViewHolder) view.getTag();
+            }
+            JSONObject object = json.getJSONObject(i);
+            holder.time.setText(object.getString("mo_signtime") == null ? "" : object.getString("mo_signtime"));
+            holder.name.setText(object.getString("mo_man") == null ? "" : object.getString("mo_man"));
+            holder.addr.setText(object.getString("mo_remark") == null ? "" : object.getString("mo_remark"));
+            holder.company.setText(object.getString("mo_company") == null ? "" : object.getString("mo_company"));
+            return view;
+        }
+
+        class ViewHolder {
+            TextView time,//时间
+                    name,//签到人
+                    addr, //地址
+                    company;//签到公司
+        }
+    }
+}

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

@@ -5,12 +5,8 @@ import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
 import android.widget.EditText;
 import android.widget.TextView;
 
@@ -94,10 +90,10 @@ public class OutSigninOKActivity extends BaseActivity {
         com_tv.setText(com);
         task.execute();
         addr_tv.setText(addr);
-        if (json != null)
-            listview.setAdapter(new SigninAdapter(json));
-        else
-            loadLog();
+//        if (json != null)
+//            listview.setAdapter(new SigninAdapter(json));
+//        else
+//            loadLog();
     }
 
     //获取打卡记录 date:yyyy-MM-dd
@@ -140,7 +136,7 @@ public class OutSigninOKActivity extends BaseActivity {
                     }
                     break;
                 case 0x13:
-                    listview.setAdapter(new SigninAdapter(JSON.parseObject(message).getJSONArray("listdata")));
+//                    listview.setAdapter(new SigninAdapter(JSON.parseObject(message).getJSONArray("listdata")));
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     ToastUtil.showToast(ct, "签到失败");
@@ -198,56 +194,5 @@ public class OutSigninOKActivity extends BaseActivity {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatSignin, null, null, "post");
     }
 
-    class SigninAdapter extends BaseAdapter {
-        private JSONArray json;
-
-        public SigninAdapter(JSONArray json) {
-            this.json = json;
-        }
-
-        @Override
-        public int getCount() {
-            return json == null ? 0 : json.size();
-        }
-
-        @Override
-        public Object getItem(int i) {
-            return json.get(i);
-        }
-
-        @Override
-        public long getItemId(int i) {
-            return i;
-        }
-
-        @Override
-        public View getView(int i, View view, ViewGroup viewGroup) {
-            ViewHolder holder = null;
-            if (view == null) {
-                holder = new ViewHolder();
-                view = LayoutInflater.from(ct).inflate(R.layout.item_outoffice_list, null);
-                holder.time = (TextView) view.findViewById(R.id.time);
-                holder.name = (TextView) view.findViewById(R.id.name);
-                holder.addr = (TextView) view.findViewById(R.id.addr);
-                holder.company = (TextView) view.findViewById(R.id.company);
-                view.setTag(holder);
-            } else {
-                holder = (ViewHolder) view.getTag();
-            }
-            JSONObject object = json.getJSONObject(i);
-            holder.time.setText(object.getString("mo_signtime") == null ? "" : object.getString("mo_signtime"));
-            holder.name.setText(object.getString("mo_man") == null ? "" : object.getString("mo_man"));
-            holder.addr.setText(object.getString("mo_remark") == null ? "" : object.getString("mo_remark"));
-            holder.company.setText(object.getString("mo_company") == null ? "" : object.getString("mo_company"));
-            return view;
-        }
-
-        class ViewHolder {
-            TextView time,//时间
-                    name,//签到人
-                    addr, //地址
-                    company;//签到公司
-        }
-    }
 
 }

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

@@ -53,7 +53,7 @@ public class UserSelectActivity extends BaseActivity {
     private boolean isNet = false;
     private DBManager manager;
     private MeetSelectAdapter adapter;
-    private ArrayList<MeetUserEntity> entities=new ArrayList<>();
+    private ArrayList<MeetUserEntity> entities = new ArrayList<>();
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -181,8 +181,13 @@ public class UserSelectActivity extends BaseActivity {
     private void selectOK() {
         //选择人员成功操作
         ArrayList<MeetUserEntity> list = new ArrayList<>();
+        if (adapter == null || adapter.getUsers() == null || adapter.getUsers().size() <= 0) {
+            finish();
+            return;
+        }
         for (int i = 0; i < adapter.getUsers().size(); i++) {
-            if (adapter.getUsers().get(i).isClick()) list.add(adapter.getUsers().get(i));
+            if (adapter.getUsers().get(i).isClick())
+                list.add(adapter.getUsers().get(i));
         }
         Intent intent = new Intent();
         intent.putExtra("data", list);
@@ -205,7 +210,6 @@ public class UserSelectActivity extends BaseActivity {
     }
 
     private void init() {
-
         isSingle = getIntent().getBooleanExtra("single", false);
         //是否获取网络数据
         isNet = getIntent().getBooleanExtra("net", false);
@@ -226,6 +230,7 @@ public class UserSelectActivity extends BaseActivity {
                 "whichsys=?");
         for (int i = 0; i < emList.size(); i++) {//企业通讯人员
             if (emList.get(i).getEm_IMID() == 0) continue;
+
             entities.add(EnterChatAction(emList.get(i)));
         }
         //获取完数据以后
@@ -250,6 +255,7 @@ public class UserSelectActivity extends BaseActivity {
         entity.setImId(String.valueOf(employee.getEm_IMID()));
         entity.setName(employee.getEM_NAME());
         entity.setEmCode(employee.getEM_CODE());
+        entity.setEmId(employee.getEM_ID());
         return entity;
     }
 

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

@@ -34,7 +34,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL(Constants.SQL_empdate_CREATETABLE);
         db.execSQL(Constants.SQL_B2B_MSG);
         db.execSQL(Constants.OA_SIGNIN_TIME);//创建OA签到记录表
-        db.execSQL(Constants.SubscriptionMessage);//创建OA签到记录表
+        db.execSQL(Constants.SubscriptionMessage);//
     }
 
     @Override

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

@@ -24,6 +24,7 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationMapActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.OAListActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutSigninOKActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutofficeActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutofficeSetActivity;
@@ -108,6 +109,7 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
 
     private void initview() {
         loadLog();
+        num_tv.setOnClickListener(this);
         date_tv.setText(TimeUtils.day_long_2_str(System.currentTimeMillis()) + " " + TimeUtils.getWeek(System.currentTimeMillis()) + " " + TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
         num_tv.setText("" + sigNum);
         String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
@@ -160,6 +162,11 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
+            case R.id.num_tv:
+                Intent list = new Intent(ct, OAListActivity.class);
+                list.putExtra("data", json);
+                startActivity(list);
+                break;
             case R.id.do_trim:
                 boolean isClick = CommonUtil.getSharedPreferencesBoolean(ct, OutofficeSetActivity.OA_LOCATION_IS);
                 if (isClick) {

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

@@ -7,7 +7,6 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.support.v7.app.AlertDialog;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -26,7 +25,9 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.oa.Signin;
 import com.xzjmyk.pm.activity.bean.oa.SigninBean;
+import com.xzjmyk.pm.activity.db.dao.SigninDao;
 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.LocationMapActivity;
@@ -291,10 +292,18 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
                 }
             }
         }
-
+        saveDB(beans);
         adapter.setBeens(beans);
     }
 
+    private void saveDB(ArrayList<Bean> beans) {
+        ArrayList<Signin> signins = new ArrayList<>();
+        for (Bean e : beans) {
+            signins.add(new Signin(e.time, e.time2, e.signin, e.signin2));
+        }
+        SigninDao.getInstance(ct).updata(signins);
+    }
+
     private ArrayList<Bean> getBeanByAdapter() {
         ArrayList<Bean> beans;
         if (adapter == null) adapter = new SigninAdapter();
@@ -620,8 +629,10 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
             else holder.tag.setVisibility(View.GONE);
             if (tag2.length() > 1) holder.tag2.setVisibility(View.VISIBLE);
             else holder.tag2.setVisibility(View.GONE);
-            holder.signin.setText(chche.signin == null ? "" : chche.signin);
-            holder.signin2.setText(chche.signin2 == null ? "" : chche.signin2);
+            if (!"-1".equals(chche.signin))
+                holder.signin.setText(chche.signin == null ? "" : chche.signin);
+            if (!"-1".equals(chche.signin2))
+                holder.signin2.setText(chche.signin2 == null ? "" : chche.signin2);
 
             holder.tag.setText(tag1);
             holder.tag2.setText(tag2);

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

@@ -70,11 +70,10 @@ public class Constants {
      */
     public static final String OA_SIGNIN_TIME = "CREATE TABLE Signin"
             + "(code,"//账套
-            + "date,"//日期
-            + "utime,"//获取的上班时间,当有多次排班,用分号分别
-            + "dtime,"//获取的下班时间,当有多次排班,用分号分别
-            + "usigmin,"//签到上班时间
-            + "dsigmin"//签到下班时间
+            + "utime,"//上班时间
+            + "dtime,"//下班时间
+            + "usigmin,"//上班签到与否
+            + "dsigmin"//下班签到与否
             + ")";
     public static final String SubscriptionMessage = "CREATE TABLE SubscriptionMessage(id_,num_id_,instance_id_ ,createdate_,title_," +
             "son_title_,status_,EMP_ID_,RN_,SONTITLE_,SUMDATA_,name)";

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


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


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


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


+ 2 - 1
WeiChat/src/main/res/layout/activity_customer_detail.xml

@@ -524,11 +524,12 @@
             <View style="@style/app_line_gray_1dp"></View>
 
             <Button
+                android:id="@+id/customer_detail_add_plan"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:background="@null"
                 android:padding="10dp"
-                android:text="添加到拜访记录" />
+                android:text="添加到拜访计划" />
         </LinearLayout>
     </LinearLayout>
 

+ 7 - 18
WeiChat/src/main/res/layout/activity_meeting.xml

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
+    android:orientation="vertical"
     android:layout_height="match_parent"
     android:background="@drawable/bg_main"
     tools:context="com.xzjmyk.pm.activity.ui.erp.activity.oa.MeetingActivity">
@@ -35,21 +36,9 @@
             android:textSize="15sp" />
     </RelativeLayout>
 
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/list_business"
+        style="@style/ListViewBasic"
+        android:divider="@color/item_line" />
 
-    <com.xzjmyk.pm.activity.view.SuperSwipeRefreshLayout
-        android:id="@+id/swiperefresh"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_below="@id/seach_top"
-        android:background="@color/oa_main">
-
-        <ListView
-            android:id="@+id/listview"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:divider="@color/oa_main"
-            android:dividerHeight="20dp" />
-    </com.xzjmyk.pm.activity.view.SuperSwipeRefreshLayout>
-
-
-</RelativeLayout>
+</LinearLayout>

+ 14 - 0
WeiChat/src/main/res/layout/activity_oalist.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.oa.OAListActivity">
+
+    <ListView
+        android:id="@+id/listview"
+        android:divider="@color/item_line"
+        android:dividerHeight="2px"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</RelativeLayout>

+ 7 - 4
WeiChat/src/main/res/layout/activity_out_signin_ok.xml

@@ -100,12 +100,13 @@
                 android:gravity="top"
                 android:hint="请填写备注(不超过100个字)"
                 android:inputType="textMultiLine"
-                android:minLines="4"
+                android:minLines="6"
                 android:textSize="@dimen/text_main" />
 
             <RelativeLayout
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content">
+                android:layout_height="wrap_content"
+                android:visibility="gone">
 
                 <ImageView
                     android:layout_width="wrap_content"
@@ -121,7 +122,8 @@
             android:layout_marginTop="10dp"
             android:text="签到列表:"
             android:textColor="@color/text_main"
-            android:textSize="@dimen/text_main" />
+            android:textSize="@dimen/text_main"
+            android:visibility="gone" />
 
         <com.xzjmyk.pm.activity.view.MyListView
             android:id="@+id/listview"
@@ -130,7 +132,8 @@
             android:layout_marginTop="10dp"
             android:background="@color/white"
             android:divider="@color/item_line"
-            android:dividerHeight="2px" />
+            android:dividerHeight="2px"
+            android:visibility="gone" />
 
     </LinearLayout>
 </ScrollView>

+ 40 - 19
WeiChat/src/main/res/layout/activity_sales_ranking.xml

@@ -4,40 +4,61 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical"
     android:fitsSystemWindows="true"
+    android:orientation="vertical"
     tools:context="com.xzjmyk.pm.activity.ui.erp.activity.crm.SalesRankingActivity">
 
     <LinearLayout style="@style/LinearLayout_vertical">
 
-        <TextView
-            android:text="2016年7月荣誉墙"
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:layout_margin="10dp"
-            android:textSize="18sp"
-            android:textColor="@color/red"
-            android:layout_gravity="center_horizontal"
-            style="@style/TextView_Basic"
-            android:id="@+id/tv_date_title" />
+            android:gravity="center"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:src="@drawable/ic_star_left" />
+
+            <TextView
+                android:id="@+id/tv_date_title"
+                style="@style/TextView_Basic"
+                android:text="2016年7月荣誉墙"
+                android:textColor="@color/red"
+                android:textSize="18sp"
+                android:layout_marginLeft="5dp"
+                android:layout_marginRight="5dp"/>
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:src="@drawable/ic_star_right" />
+
+        </LinearLayout>
 
         <TextView
+            style="@style/TextView_Basic"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginBottom="10dp"
             android:layout_marginLeft="30dp"
             android:layout_marginRight="30dp"
             android:layout_marginTop="10dp"
-            android:layout_marginBottom="10dp"
-            android:layout_gravity="center_horizontal"
             android:gravity="center"
-            android:text="这里展示的是当月表现突出的员工,荣誉墙每个月都会更新,若这个月还没上榜,请多加努力,还有机会哟!"
-            style="@style/TextView_Basic" />
+            android:text="这里展示的是当月表现突出的员工,荣誉墙每个月都会更新,若这个月还没上榜,请多加努力,还有机会哟!" />
 
         <View style="@style/app_line_horizontal_05p"></View>
     </LinearLayout>
-   <TextView
-       android:id="@+id/tv_msg"
-       android:gravity="center"
-       android:layout_width="match_parent"
-       android:layout_height="match_parent" />
+
+    <TextView
+        android:id="@+id/tv_msg"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="center" />
+
     <com.handmark.pulltorefresh.library.PullToRefreshGridView
         android:id="@+id/list_business"
-        android:layout_margin="10dp"
-        style="@style/GridViewSaleRanking"></com.handmark.pulltorefresh.library.PullToRefreshGridView>
+        style="@style/GridViewSaleRanking"
+        android:layout_margin="10dp"></com.handmark.pulltorefresh.library.PullToRefreshGridView>
 </LinearLayout>

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

@@ -62,7 +62,7 @@
             android:layout_alignParentRight="true"
             android:layout_width="50dp"
             android:layout_height="50dp"
-            android:src="@drawable/icon_sunzhang" />
+            android:src="@drawable/ic_xunzhang" />
     </RelativeLayout>
 
   <!--  <LinearLayout

+ 1 - 1
WeiChat/src/main/res/menu/menu_push.xml

@@ -5,7 +5,7 @@
 
     <item
         android:id="@+id/push"
-        android:title="发送"
+        android:title="提交"
         app:showAsAction="ifRoom" />
 
 </menu>