Преглед на файлове

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

SpringBoots преди 9 години
родител
ревизия
5e2e1efe4c
променени са 20 файла, в които са добавени 240 реда и са изтрити 311 реда
  1. 47 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/DatabaseManager.java
  2. 18 85
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MessageDao.java
  3. 15 34
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MissionDao.java
  4. 17 17
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/SubsDao.java
  5. 11 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/UUStepDataDao.java
  6. 8 65
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkLocationDao.java
  7. 15 23
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java
  8. 5 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddFlihtsActivity.java
  9. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  10. 2 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java
  11. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddFlihtsPresenter.java
  12. 53 29
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/MessagePresenter.java
  13. 4 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/MissionPresenter.java
  14. 7 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/WorkPresenter.java
  15. 2 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IMessageView.java
  16. 8 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CommonInterface.java
  17. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java
  18. 0 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java
  19. 16 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/NewMessageFragment.java
  20. 8 15
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/WorkHandlerUtil.java

+ 47 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/DatabaseManager.java

@@ -0,0 +1,47 @@
+package com.xzjmyk.pm.activity.db;
+
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class DatabaseManager {
+
+    private AtomicInteger mOpenCounter = new AtomicInteger();
+
+    private static DatabaseManager instance;
+    private static SQLiteOpenHelper mDatabaseHelper;
+    private SQLiteDatabase mDatabase;
+
+    public static synchronized void initializeInstance(SQLiteOpenHelper helper) {
+        if (instance == null) {
+            instance = new DatabaseManager();
+            mDatabaseHelper = helper;
+        }
+    }
+
+    public static synchronized DatabaseManager getInstance() {
+        if (instance == null) {
+            throw new IllegalStateException(DatabaseManager.class.getSimpleName() +
+                    " is not initialized, call initializeInstance(..) method first.");
+        }
+
+        return instance;
+    }
+
+    public synchronized SQLiteDatabase openDatabase() {
+        if(mOpenCounter.incrementAndGet() == 1) {
+            // Opening new database
+            mDatabase = mDatabaseHelper.getWritableDatabase();
+        }
+        return mDatabase;
+    }
+
+    public synchronized void closeDatabase() {
+        if(mOpenCounter.decrementAndGet() == 0) {
+            // Closing database
+            mDatabase.close();
+
+        }
+    }
+}

+ 18 - 85
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MessageDao.java

@@ -5,7 +5,7 @@ import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 
 import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.model.MessageModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -21,7 +21,6 @@ import java.util.List;
  */
 
 public class MessageDao {
-    private DBOpenHelper helper = null;
     private final String TABLE_NAME = "em_erpnews";
     private static MessageDao instance;
 
@@ -35,7 +34,7 @@ public class MessageDao {
     }
 
     private MessageDao() {
-        helper =DBOpenHelper.getInstance();
+
     }
 
     /**
@@ -53,7 +52,7 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             StringBuilder idBuilder = new StringBuilder();
             for (MessageModel e : models)
                 idBuilder.append(e.getId() + ",");
@@ -91,44 +90,11 @@ public class MessageDao {
         } catch (Exception e) {
         } finally {
             if (db != null)
-                db.close();
+                  DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
 
-    /**
-     * 注意 如果该id已经存在,就更新,更新时候不更新状态,要到upStatus更新状态
-     * TODO  没有改好,先关闭对外接口
-     *
-     * @param model
-     * @return
-     */
-    @Deprecated
-    public boolean createOrinstart(MessageModel model) {
-        if (model == null) return false;
-        SQLiteDatabase db = null;
-        long i = 0;
-        try {
-            String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
-            String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
-            if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
-            ContentValues values = getValues(model, master, emcode);
-            //对象为空或是拜访时间没有情况下不插入数据库
-            i = db.insert(TABLE_NAME, null, values);
-            if (i == -1) {//如果插入不成功,就是数据库中有该条数据
-                String where = "master=? and emcode=? and id=? ";
-                String[] whereArgs = {master, emcode, String.valueOf(model.getId())};
-                values.remove("isReaded");//不更新状态
-                i = db.update(TABLE_NAME, values, where, whereArgs);
-            }
-        } catch (Exception e) {
-        } finally {
-            if (db != null)
-                db.close();
-            return i > 0;
-        }
-    }
 
 
     /**
@@ -151,39 +117,6 @@ public class MessageDao {
         return models;
     }
 
-    /**
-     * 修改状态
-     *
-     * @param models
-     * @param isReaded
-     * @return
-     */
-    public boolean upStatus(List<MessageModel> models, boolean isReaded) {
-        if (ListUtils.isEmpty(models)) return false;
-        SQLiteDatabase db = null;
-        long i = 0;
-        try {
-            String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
-            String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
-            if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
-            ContentValues values;
-            String where = "master=? and emcode=? and id=?";
-            for (MessageModel m : models) {
-                values = new ContentValues();
-                values.put("isReaded", isReaded ? 1 : 0);
-                String[] whereArgs = {master, emcode, String.valueOf(m.getId())};
-                i = db.update(TABLE_NAME, values, where, whereArgs);
-            }
-        } catch (Exception e) {
-
-        } finally {
-            if (db != null)
-                db.close();
-            return i > 0;
-        }
-    }
-
     /**
      * 修改单个
      *
@@ -198,7 +131,7 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase()  ;
             ContentValues values = new ContentValues();
             values.put("isReaded", isReaded ? 1 : 0);
             String readTime = TimeUtils.f_long_2_str(System.currentTimeMillis());
@@ -210,7 +143,7 @@ public class MessageDao {
 
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -230,7 +163,7 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();
             ContentValues values = new ContentValues();
             values.put("isReaded", false);
@@ -248,7 +181,7 @@ public class MessageDao {
         } catch (Exception e) {
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -270,7 +203,7 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             ContentValues values = new ContentValues();
             values.put("isReaded", isReaded ? 1 : 0);
             if (isReaded)
@@ -283,7 +216,7 @@ public class MessageDao {
         } catch (Exception e) {
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -301,7 +234,7 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return messageModels;
-            db = helper.getReadableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String[] columns = {"id", "count", "title", "subTitle", "time", "type", "isReaded", "readTime"};
 //TODO
 //            String selection = "hierarchy=? and master=? and emcode=?  and  isReaded!=? ";
@@ -314,7 +247,7 @@ public class MessageDao {
         } catch (Exception e) {
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return messageModels;
         }
     }
@@ -332,7 +265,7 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return messageModels;
-            db = helper.getReadableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             String[] columns = {"id", "count", "title", "subTitle", "time", "type", "isReaded", "readTime"};
             String selection = "type=? and hierarchy=? and master=? and emcode=?";
             String[] selectArgs = {type, String.valueOf(hierarchy), master, emcode};
@@ -342,7 +275,7 @@ public class MessageDao {
         } catch (Exception e) {
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return messageModels;
         }
     }
@@ -362,7 +295,7 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             String where = "master=? and emcode=? and type=?";
             String[] whereArgs = {master, emcode, type};
             //TODO 由于后台没有按要求把推送过的数据过滤  所以这里使用更新操作
@@ -374,7 +307,7 @@ public class MessageDao {
         } catch (Exception e) {
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
 
@@ -395,14 +328,14 @@ public class MessageDao {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             String where = "master=? and emcode=? and id=?";
             String[] whereArgs = {master, emcode, id};
             i = db.delete(TABLE_NAME, where, whereArgs);
         } catch (Exception e) {
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
 

+ 15 - 34
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MissionDao.java

@@ -9,7 +9,7 @@ import android.util.Log;
 import com.baidu.mapapi.model.LatLng;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -33,7 +33,7 @@ import java.util.List;
  */
 
 public class MissionDao {
-    private DBOpenHelper helper = null;
+
     private String tibleName = "mission";
     private static MissionDao instance;
 
@@ -47,7 +47,6 @@ public class MissionDao {
     }
 
     public MissionDao() {
-        helper = DBOpenHelper.getInstance();
     }
 
 
@@ -65,7 +64,7 @@ public class MissionDao {
             String master = getMaster();
             String emcode = getEmcode();
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             ContentValues values = new ContentValues();
             values.put("status", status);
             String where = "master=? and emcode=? and id=? ";
@@ -77,7 +76,7 @@ public class MissionDao {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -92,7 +91,7 @@ public class MissionDao {
             String emcode = getEmcode();
             String date = TimeUtils.s_long_2_str(System.currentTimeMillis());
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return missions;
-            db = helper.getReadableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String[] columns = {"id", "company",
                     "companyAddr", "latitude",
                     "longitude", "visittime",
@@ -125,15 +124,14 @@ public class MissionDao {
                 mission.setType(cursor.getInt(13));
                 missions.add(mission);
             }
+            cursor.close();
         } catch (android.database.SQLException e) {
             show("SQLException=" + e.getMessage());
         } catch (Exception e) {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
-            if (cursor != null)
-                cursor.close();
+                DatabaseManager.getInstance().closeDatabase();
             return missions;
         }
     }
@@ -147,7 +145,7 @@ public class MissionDao {
             String master = getMaster();
             String emcode = getEmcode();
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             ContentValues values = null;
             show("MissionPlanEntity");
             //对象为空或是拜访时间没有情况下不插入数据库
@@ -183,7 +181,7 @@ public class MissionDao {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -197,7 +195,7 @@ public class MissionDao {
             String master = getMaster();
             String emcode = getEmcode();
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();//开启事务
             ContentValues values = null;
             for (MissionModel mission : entities) {
@@ -242,7 +240,7 @@ public class MissionDao {
         } finally {
             db.endTransaction();
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -255,7 +253,7 @@ public class MissionDao {
             String master = getMaster();
             String emcode = getEmcode();
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             ContentValues values = new ContentValues();
             if (mission.getLatLng() != null) {
                 values.put("latitude", mission.getLatLng().latitude);
@@ -274,7 +272,7 @@ public class MissionDao {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
+              DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -291,24 +289,6 @@ public class MissionDao {
         return TimeUtils.s_long_2_str(TimeUtils.f_str_2_long(date));
     }
 
-    public boolean clearAll() {
-        SQLiteDatabase db = null;
-        boolean clearOk = false;
-        try {
-            db = helper.getWritableDatabase();
-            db.execSQL("DELETE FROM " + tibleName);
-        } catch (SQLException e) {
-            if (e != null)
-                show("clearAll SQLException" + e.getMessage());
-        } catch (Exception e) {
-            if (e != null)
-                show("clearAll Exception" + e.getMessage());
-        } finally {
-            return clearOk;
-        }
-    }
-
-
     public boolean clearAll(long date) {
         SQLiteDatabase db = null;
         boolean clearOk = false;
@@ -316,7 +296,7 @@ public class MissionDao {
             String master = getMaster();
             String emcode = getEmcode();
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String where = "master=? and emcode=? and date=?";
             String[] whereArg = {master, emcode, TimeUtils.s_long_2_str(date)};
             int i = db.delete(tibleName, where, whereArg);
@@ -328,6 +308,7 @@ public class MissionDao {
             if (e != null)
                 show("clearAll Exception" + e.getMessage());
         } finally {
+             DatabaseManager.getInstance().closeDatabase();
             return clearOk;
         }
     }

+ 17 - 17
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/SubsDao.java

@@ -9,7 +9,7 @@ import android.util.Log;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.message.SubMessage;
-import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
@@ -23,7 +23,7 @@ import java.util.List;
 
 public class SubsDao {
     private static SubsDao instance;
-    private DBOpenHelper helper;
+
 
     public static SubsDao getInstance() {
         if (instance == null) {
@@ -35,7 +35,7 @@ public class SubsDao {
     }
 
     private SubsDao() {
-        helper = DBOpenHelper.getInstance();
+
 
     }
 
@@ -52,7 +52,7 @@ public class SubsDao {
     private boolean insertAll(List<SubMessage> messages) {
         SQLiteDatabase db = null;
         try {
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
@@ -82,7 +82,7 @@ public class SubsDao {
             return false;
         } finally {
             db.endTransaction();
-            db.close();
+            DatabaseManager.getInstance().closeDatabase();
         }
     }
 
@@ -91,7 +91,7 @@ public class SubsDao {
         SQLiteDatabase db = null;
         Cursor cursor = null;
         try {
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             String[] columns = {"id", "numId", "instanceId", "title", "subTitle", "status", "date", "createTime", "isRead"};
@@ -123,7 +123,7 @@ public class SubsDao {
         } finally {
             if (cursor != null)
                 cursor.close();
-            db.close();
+            DatabaseManager.getInstance().closeDatabase();
         }
     }
 
@@ -131,7 +131,7 @@ public class SubsDao {
         if (message == null) return false;
         SQLiteDatabase db = null;
         try {
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             String where = "master=? and emcode=? and status=? and  date=?";
@@ -148,7 +148,7 @@ public class SubsDao {
             show("Exception=" + e.getMessage());
             return false;
         } finally {
-            db.close();
+            DatabaseManager.getInstance().closeDatabase();
         }
 
     }
@@ -158,7 +158,7 @@ public class SubsDao {
         if (message == null) return false;
         SQLiteDatabase db = null;
         try {
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             String where = "master=? and emcode=? and id=? and  date=?";
@@ -175,7 +175,7 @@ public class SubsDao {
             show("Exception=" + e.getMessage());
             return false;
         } finally {
-            db.close();
+            DatabaseManager.getInstance().closeDatabase();
         }
     }
 
@@ -183,7 +183,7 @@ public class SubsDao {
     private boolean deleteByDate(String date) {
         SQLiteDatabase db = null;
         try {
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             String where = "master=? and emcode=?  and  date=?";
@@ -200,7 +200,7 @@ public class SubsDao {
             show("Exception=" + e.getMessage());
             return false;
         } finally {
-            db.close();
+            DatabaseManager.getInstance().closeDatabase();
         }
     }
 
@@ -208,7 +208,7 @@ public class SubsDao {
         if (message == null) return false;
         SQLiteDatabase db = null;
         try {
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             String where = "master=? and emcode=? and id=? and  date=?";
@@ -228,7 +228,7 @@ public class SubsDao {
             show("Exception=" + e.getMessage());
             return false;
         } finally {
-            db.close();
+            DatabaseManager.getInstance().closeDatabase();
         }
     }
 
@@ -236,7 +236,7 @@ public class SubsDao {
         if (ListUtils.isEmpty(messages)) return false;
         SQLiteDatabase db = null;
         try {
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
@@ -258,7 +258,7 @@ public class SubsDao {
             return false;
         } finally {
             db.endTransaction();
-            db.close();
+            DatabaseManager.getInstance().closeDatabase();
         }
     }
 

+ 11 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/UUStepDataDao.java

@@ -7,7 +7,7 @@ import android.database.sqlite.SQLiteDatabase;
 import android.util.Log;
 
 import com.xzjmyk.pm.activity.AppConfig;
-import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.UUStepDataEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 
@@ -20,7 +20,7 @@ import java.util.List;
  */
 public class UUStepDataDao {
     private static UUStepDataDao instance;
-    private DBOpenHelper helper = null;
+
     private String tableName = "uustep_data";
 
     public  static UUStepDataDao getInstance(){
@@ -31,7 +31,7 @@ public class UUStepDataDao {
     }
 
     private UUStepDataDao(){
-        helper =DBOpenHelper.getInstance();
+
     }
 
     //获取全部步数数据
@@ -41,7 +41,7 @@ public class UUStepDataDao {
         List<UUStepDataEntity> beans = null;
         try {
 
-            db = helper.getReadableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String[] columns = {"date", "stepnumbers"};
             String selection = null;
             String[] selecttionArg = null;
@@ -60,7 +60,7 @@ public class UUStepDataDao {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             if (cursor != null)
                 cursor.close();
             return beans;
@@ -74,7 +74,7 @@ public class UUStepDataDao {
         long i = 0;
         try {
 
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             ContentValues values = new ContentValues();
             values.put("date",bean.getDate());
             values.put("stepnumbers",bean.getStepnumbers());
@@ -87,7 +87,7 @@ public class UUStepDataDao {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }
@@ -96,7 +96,7 @@ public class UUStepDataDao {
     public void update(UUStepDataEntity bean){
         SQLiteDatabase db = null;
         try {
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             Cursor cursor = db.query(tableName,null,null,null,null,null,null,null);
             if (cursor.moveToNext()){
                 do{
@@ -115,7 +115,7 @@ public class UUStepDataDao {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
         }
     }
 
@@ -125,7 +125,7 @@ public class UUStepDataDao {
         SQLiteDatabase db = null;
         int queryStepnums = 0;
         try {
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             Cursor cursor = db.query(tableName,null,null,null,null,null,null,null);
             if (cursor.moveToNext()){
                 do{
@@ -142,7 +142,7 @@ public class UUStepDataDao {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
         }
         if (queryStepnums >= 0){
             return queryStepnums;

+ 8 - 65
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkLocationDao.java

@@ -6,10 +6,9 @@ import android.database.SQLException;
 import android.database.sqlite.SQLiteDatabase;
 
 import com.baidu.mapapi.model.LatLng;
-import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.WorkLocationModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 
 import java.util.ArrayList;
@@ -23,7 +22,7 @@ import static com.xzjmyk.pm.activity.util.MessageDialogUtil.show;
 
 public class WorkLocationDao {
 
-    private DBOpenHelper helper = null;
+
     private final String TIBLE_NAME = "work_location";
     private static WorkLocationDao instance;
 
@@ -37,7 +36,6 @@ public class WorkLocationDao {
     }
 
     public WorkLocationDao() {
-        helper =DBOpenHelper.getInstance();
     }
 
 
@@ -51,7 +49,7 @@ public class WorkLocationDao {
             String emcode = CommonUtil.getEmcode();
 
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return beans;
-            db = helper.getReadableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String[] columns = {"id", "latitude",
                     "longitude", "shortName",
                     "workaddr", "innerdistance",
@@ -74,82 +72,27 @@ public class WorkLocationDao {
                 bean.setValidrange(cursor.getInt(6));
                 beans.add(bean);
             }
+            if (cursor != null)
+                cursor.close();
         } catch (android.database.SQLException e) {
             show("SQLException=" + e.getMessage());
         } catch (Exception e) {
             show("Exception=" + e.getMessage());
         } finally {
             if (db != null)
-                db.close();
-            if (cursor != null)
-                cursor.close();
+                DatabaseManager.getInstance().closeDatabase();
             return beans;
         }
     }
 
 
-    /**
-     * 根据传过来的数据保存或更新数据
-     *
-     * @param entities
-     * @return
-     */
-    public boolean updataOrCreate(List<WorkLocationModel> entities) {
-        if (ListUtils.isEmpty(entities)) return false;
-        show("updataOrCreate");
-        SQLiteDatabase db = null;
-        long i = 0;
-        try {
-            String master = CommonUtil.getMaster();
-            String emcode = CommonUtil.getEmcode();
-            if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
-            db = helper.getWritableDatabase();
-            db.beginTransaction();//开启事务
-            ContentValues values = null;
-            for (WorkLocationModel e : entities) {
-                show("MissionPlanEntity");
-                //对象为空或是拜访时间没有情况下不插入数据库
-                if (e == null) {
-                    continue;
-                }
-                values = new ContentValues();
-                values.put("id", e.getId());
-                values.put("master", master);
-                values.put("emcode", emcode);
-                values.put("validrange", e.getValidrange());
-                values.put("innerdistance", e.getInnerdistance());
-                values.put("latitude", e.getLatitude());
-                values.put("longitude", e.getLongitude());
-                values.put("shortName", e.getShortName());
-                values.put("workaddr", e.getWorkaddr());
-                i = db.insert(TIBLE_NAME, null, values);
-                if (i == -1) {
-                    String where = "master=? and emcode=? and id=? ";
-                    String[] whereArgs = {master, emcode, String.valueOf(e.getId())};
-                    i = db.update(TIBLE_NAME, values, where, whereArgs);
-                    show("update i=" + i);
-                }
-                show("i====" + i);
-            }
-            db.setTransactionSuccessful();
-        } catch (SQLException e) {
-            show("SQLException=" + e.getMessage());
-        } catch (Exception e) {
-            show("Exception=" + e.getMessage());
-        } finally {
-            db.endTransaction();
-            if (db != null)
-                db.close();
-            return i > 0;
-        }
-    }
 
 
     public boolean clearAndInsert(List<WorkLocationModel> entities) {
         SQLiteDatabase db = null;
         long i = 0;
         try {
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();//开启事务
             //清空表数据
             db.execSQL("DELETE FROM " + TIBLE_NAME);
@@ -185,7 +128,7 @@ public class WorkLocationDao {
         } finally {
             db.endTransaction();
             if (db != null)
-                db.close();
+                DatabaseManager.getInstance().closeDatabase();
             return i > 0;
         }
     }

+ 15 - 23
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java

@@ -5,7 +5,7 @@ import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.util.Log;
 
-import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -23,7 +23,7 @@ public class WorkModelDao {
 
     private static WorkModelDao instance;
     private final String TIBLE_NAME = "workdata";
-    private final DBOpenHelper helper;
+
 
     public static WorkModelDao getInstance() {
         if (instance == null) {
@@ -35,7 +35,7 @@ public class WorkModelDao {
     }
 
     private WorkModelDao() {
-        helper = DBOpenHelper.getInstance();
+
     }
 
 
@@ -106,7 +106,7 @@ public class WorkModelDao {
             String emCode = CommonUtil.getEmcode();
             String master = CommonUtil.getMaster();
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return null;
-            db = helper.getReadableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String[] columns = {"workStart", "workTime", "workend", "workSignin", "offStart", "offTime"
                     , "offend", "offSignin", "leaveAlarm", "workAlarm", "offAlarm"};
             String selection = "emCode=? and master=? and date=?";
@@ -142,10 +142,7 @@ public class WorkModelDao {
         } finally {
             if (c != null)
                 c.close();
-            if (db != null)
-                db.close();
-            if (helper != null)
-                helper.close();
+            DatabaseManager.getInstance().closeDatabase();
             return models;
         }
     }
@@ -166,15 +163,14 @@ public class WorkModelDao {
             String emCode = CommonUtil.getEmcode();
             String master = CommonUtil.getMaster();
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return 0;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             String where = "emCode=? and master=?  and date=?";
             String[] whereArg = {"emCode", "master", TimeUtils.s_long_2_str(date)};
             i = db.delete(TIBLE_NAME, where, whereArg);
         } catch (Exception e) {
 
         } finally {
-            if (db != null) db.close();
-            if (helper != null) helper.close();
+            DatabaseManager.getInstance().closeDatabase();
             return i;
         }
     }
@@ -193,7 +189,7 @@ public class WorkModelDao {
             String emCode = CommonUtil.getEmcode();
             String master = CommonUtil.getMaster();
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return 0;
-            db = helper.getWritableDatabase();
+            db = DatabaseManager.getInstance().openDatabase();
             ContentValues values = new ContentValues();
             if (StringUtils.isEmpty(models.getWorkStart()) || StringUtils.isEmpty(models.getWorkTime()) || StringUtils.isEmpty(models.getWorkend()) ||
                     StringUtils.isEmpty(models.getOffStart()) || StringUtils.isEmpty(models.getOffTime()) || StringUtils.isEmpty(models.getOffend()))
@@ -219,8 +215,7 @@ public class WorkModelDao {
             i = db.update(TIBLE_NAME, values, where, whereArg);
         } catch (Exception e) {
         } finally {
-            if (db != null) db.close();
-            if (helper != null) helper.close();
+            DatabaseManager.getInstance().closeDatabase();
             return i;
         }
     }
@@ -241,7 +236,7 @@ public class WorkModelDao {
             String master = CommonUtil.getMaster();
             String date = TimeUtils.s_long_2_str(System.currentTimeMillis());
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return 0;
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();
             ContentValues values = null;
             for (WorkModel e : models) {
@@ -278,8 +273,7 @@ public class WorkModelDao {
         } catch (Exception e) {
         } finally {
             db.endTransaction();
-            if (db != null) db.close();
-            if (helper != null) helper.close();
+            DatabaseManager.getInstance().closeDatabase();
             return i;
         }
     }
@@ -298,7 +292,7 @@ public class WorkModelDao {
             String emCode = CommonUtil.getEmcode();
             String master = CommonUtil.getMaster();
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return 0;
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();
 
             for (WorkModel e : models) {
@@ -316,8 +310,7 @@ public class WorkModelDao {
 
         } finally {
             db.endTransaction();
-            if (db != null) db.close();
-            if (helper != null) helper.close();
+            DatabaseManager.getInstance().closeDatabase();
             return i;
         }
     }
@@ -337,7 +330,7 @@ public class WorkModelDao {
             String emCode = CommonUtil.getEmcode();
             String master = CommonUtil.getMaster();
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return 0;
-            db = helper.getWritableDatabase();
+            db =DatabaseManager.getInstance().openDatabase();
             db.beginTransaction();
             ContentValues values = null;
             for (WorkModel e : models) {
@@ -369,8 +362,7 @@ public class WorkModelDao {
                 Log.i("gongpengming", "e=" + e.getMessage());
         } finally {
             db.endTransaction();
-            if (db != null) db.close();
-            if (helper != null) helper.close();
+            DatabaseManager.getInstance().closeDatabase();
             return i;
         }
     }

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

@@ -63,12 +63,13 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
 
     private void initEvent() {
         boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
-        if (isB2b) {
+        if (!isB2b) {
             findViewById(R.id.date_tv).setOnClickListener(this);
             findViewById(R.id.department_tv).setOnClickListener(this);
             findViewById(R.id.munber_tv).setOnClickListener(this);
             collision_department_tv.setOnClickListener(this);
             collision_munber_tv.setOnClickListener(this);
+        } else {
             rule_name_et.setFocusable(false);
             rule_name_et.setClickable(false);
         }
@@ -243,9 +244,9 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
 
     @Override
     public void setClickAble(boolean isClickAble) {
-        rule_name_et.setClickable(!isClickAble);
-        rule_name_et.setFocusable(!isClickAble);
-        this.isClickAble = !isClickAble;
+        rule_name_et.setClickable(isClickAble);
+        rule_name_et.setFocusable(isClickAble);
+        this.isClickAble = isClickAble;
 
     }
 

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

@@ -83,7 +83,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import static com.alibaba.fastjson.JSON.parseObject;
-import static com.xzjmyk.pm.activity.util.PreferenceUtils.getBoolean;
 import static com.xzjmyk.pm.activity.view.crouton.Crouton.makeText;
 
 /**
@@ -902,7 +901,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                 startActivity(intent);
                 break;
             case R.id.outoffice:  //外勤签到
-                boolean is = getBoolean(AppConfig.AUTO_MISSION, false);
+                boolean is = PreferenceUtils.getBoolean(AppConfig.AUTO_MISSION, false);
                 if (is && AppConfig.IS_MISSION) {
 //                    intent = new Intent(activity, MissionPlanActivity.class);
                     intent = new Intent(activity, MissionActivity.class);

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

@@ -6,6 +6,7 @@ import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
 
 import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.db.DatabaseManager;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 
@@ -24,6 +25,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
     public synchronized static DBOpenHelper getInstance() {
         if (mInstance == null) {
             mInstance = new DBOpenHelper(MyApplication.getInstance());
+            DatabaseManager.initializeInstance(mInstance);
         }
         return mInstance;
     }

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

@@ -68,7 +68,7 @@ public class AddFlihtsPresenter implements HttpHandler.OnResultListener {
             iAddFlihtsView.updateDate(date);
             iAddFlihtsView.updateTime(time);
             iAddFlihtsView.updateName(model.getName());
-            iAddFlihtsView.setClickAble("默认班次".equals(model.getName()) || model.getType() == 2);
+            iAddFlihtsView.setClickAble(!("默认班次".equals(model.getName()) || model.getType() == 2));
             iAddFlihtsView.isB2b(isB2b);
         }
         iAddFlihtsView.setTitle(title);

+ 53 - 29
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/MessagePresenter.java

@@ -1,6 +1,10 @@
 package com.xzjmyk.pm.activity.ui.erp.presenter;
 
+import android.content.BroadcastReceiver;
+import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.ConnectivityManager;
 import android.os.Bundle;
 import android.text.TextUtils;
 
@@ -51,8 +55,8 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
     private final int LOAD_SUBS = 0x12;
     private final int LOAD_PROCESS = 0x13;
 
-    private final String SUB_READ_TIME = "SUB_READ_TIME";//订阅好点击阅读时间
-    private final String SUB_LOAD_TIME = "SUB_LOAD_TIME";//订阅好下拉时间时间
+    private final String SUB_READ_TIME = CommonUtil.getMaster() + "SUB_READ_TIME";//订阅好点击阅读时间
+    private final String SUB_LOAD_TIME = CommonUtil.getMaster() + "SUB_LOAD_TIME";//订阅好下拉时间时间
 
     private List<BaseSortModel<Friend>> mFriendList;
 
@@ -65,6 +69,22 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
     private String filter;//搜索数据
     private int emnewsNum, subsNum, processNum, taskNum;//红点消息分类数量
 
+
+    private String[] RECEIVER_LIST = {ConnectivityManager.CONNECTIVITY_ACTION};
+    /**
+     * @desc:监听网络变化
+     * @author:Arison on 2016/11/30
+     */
+    private BroadcastReceiver dataChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (!StringUtils.isEmpty(intent.getAction()) && intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
+                iMessageView.changeNet(CommonUtil.isNetWorkConnected(MyApplication.getInstance()));
+            }
+        }
+    };
+
+
     public MessagePresenter(MainActivity ct, IMessageView iMessageView) {
         this.ct = ct;
         mFriendList = new ArrayList<>();
@@ -73,14 +93,18 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         this.iMessageView = iMessageView;
         subReadTime = PreferenceUtils.getString(SUB_READ_TIME);
         subLoadTime = PreferenceUtils.getString(SUB_LOAD_TIME);
-
+        if (RECEIVER_LIST != null && RECEIVER_LIST.length > 0) {
+            IntentFilter dateFilter = new IntentFilter();
+            for (String f : RECEIVER_LIST)
+                dateFilter.addAction(f);
+            ct.registerReceiver(dataChangeReceiver, dateFilter);
+        }
     }
 
-    public void loadData(boolean isAll) {
-        if (isAll) {
-            loadERPNews();//获取消息
-        }
+    public void loadData() {
+        loadERPNews();//获取消息
         loadTaskData();//获取任务接口
+
         if (StringUtils.isEmpty(subLoadTime) || subLoadTime.compareTo(TimeUtils.s_long_2_str(System.currentTimeMillis())) < 0) {
             loadSubData();//获取订阅号接口
             PreferenceUtils.putString(SUB_LOAD_TIME, TimeUtils.s_long_2_str(System.currentTimeMillis()));
@@ -88,24 +112,11 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         loadProcessToDo();//获取审批流接口
     }
 
-    public void loadData() {
-        loadData(true);
-    }
-
-
-    /**
-     * 获取消息红点提醒接口
-     */
-    private void loadERPNews() {
-        Map<String, Object> param = new HashMap<>();
-        param.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        HttpHandler.getInstance().loadERPByNet(LOAD_EMNEWS, "mobile/queryEmNews.action", param, null, this);
-    }
 
     /**
      * 获取订阅号消息接口
      */
-    public void loadSubData() {
+    private void loadSubData() {
         //获取网络数据
         Map<String, Object> param = new HashMap<>();
         param.put("count", 100);
@@ -114,10 +125,20 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         HttpHandler.getInstance().loadERPByNet(LOAD_SUBS, "common/desktop/subs/getSubs.action", param, null, this, "get");
     }
 
+    /**
+     * 获取消息红点提醒接口
+     */
+    private void loadERPNews() {
+        Map<String, Object> param = new HashMap<>();
+        param.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        HttpHandler.getInstance().loadERPByNet(LOAD_EMNEWS, "mobile/queryEmNews.action", param, null, this);
+    }
+
+
     /**
      * 获取获取任务接口
      */
-    public void loadTaskData() {
+    private void loadTaskData() {
         //获取网络数据
         Map<String, Object> param = new HashMap<>();
         param.put("_noc", 1);
@@ -151,14 +172,14 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         JSONObject object = JSON.parseObject(message);
         switch (what) {
             case LOAD_EMNEWS:
-                LogUtil.d("主线程:" + DateFormatUtil.getDateTimeStr()+"  name:"+
-                Thread.currentThread().getName());
+                LogUtil.d("主线程:" + DateFormatUtil.getDateTimeStr() + "  name:" +
+                        Thread.currentThread().getName());
                 if (!object.containsKey("listdata")) {
                     return;
                 }
                 JSONArray array = object.getJSONArray("listdata");
                 handlerNewsFormErp(array);
-                LogUtil.d("主线程:end:" + DateFormatUtil.getDateTimeStr()+"  name:"+
+                LogUtil.d("主线程:end:" + DateFormatUtil.getDateTimeStr() + "  name:" +
                         Thread.currentThread().getName());
                 break;
             case LOAD_SUBS://获取订阅号接口
@@ -278,21 +299,21 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         new Thread(new Runnable() {
             @Override
             public void run() {
-                LogUtil.d("子綫程:" + DateFormatUtil.getDateTimeStr()+"name:"+Thread.currentThread().getName());
+                LogUtil.d("子綫程:" + DateFormatUtil.getDateTimeStr() + "name:" + Thread.currentThread().getName());
                 if (!ListUtils.isEmpty(models))
                     MessageDao.getInstance().createOrinstart(models);
                 final List<BaseSortModel<Friend>> chche = loadDataByImAsync();//loadDataByImAsync()
-                LogUtil.d("子綫程:" + DateFormatUtil.getDateTimeStr()+"name:"+Thread.currentThread().getName());
+                LogUtil.d("子綫程:" + DateFormatUtil.getDateTimeStr() + "name:" + Thread.currentThread().getName());
                 HttpHandler.getInstance().post(new Runnable() {
                     @Override
                     public void run() {
-                        LogUtil.d("主綫程:" + DateFormatUtil.getDateTimeStr()+"name:"+Thread.currentThread().getName());
+                        LogUtil.d("主綫程:" + DateFormatUtil.getDateTimeStr() + "name:" + Thread.currentThread().getName());
                         if (mFriendList == null) mFriendList = new ArrayList<>();
                         mFriendList.clear();
                         if (chche != null)
                             mFriendList.addAll(chche);
                         showByEndIm();
-                        LogUtil.d("主綫程 end:" + DateFormatUtil.getDateTimeStr()+"name:"+Thread.currentThread().getName());
+                        LogUtil.d("主綫程 end:" + DateFormatUtil.getDateTimeStr() + "name:" + Thread.currentThread().getName());
                     }
                 });
             }
@@ -600,4 +621,7 @@ public class MessagePresenter implements HttpHandler.OnResultListener {
         this.subReadTime = subReadTime;
     }
 
+    public void onDestroyView(MainActivity mContext) {
+        ct.unregisterReceiver(dataChangeReceiver);
+    }
 }

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

@@ -136,7 +136,6 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
         if (!isB2b) {
             id = bundle.getInt("id");
             code = bundle.getString("code");
-
         }
         int position = bundle.getInt("position");
         MissionModel entity = bundle.getParcelable("data");
@@ -158,8 +157,10 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
             formStore.put("mp_code", code);//code MOBILE_OUTPLAN_SEQ
         }
         formStore.put("mp_visittime", TimeUtils.f_long_2_str(System.currentTimeMillis()));
-        formStore.put("enuu", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu"));
-        formStore.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "b2b_uu"));
+        if (isB2b) {
+            formStore.put("enuu", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu"));
+            formStore.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "b2b_uu"));
+        }
         formStore.put("mp_recorder", name);//用户名
         String mp_recordercode = isB2b ? CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "b2b_uu") :
                 CommonUtil.getSharedPreferences(ct, "erp_username");

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

@@ -171,8 +171,10 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         form.put("cl_emname", emname);  //名字
         form.put("cl_location", loaction); //位置
         form.put("cl_emcode", emCode);//编号 erp员工编号  b2b  enuu
-        form.put("enuu", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu"));
-        form.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "b2b_uu"));
+        if (isB2b) {
+            form.put("enuu", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu"));
+            form.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "b2b_uu"));
+        }
         String formStore = StringUtils.mapToJson(form);
         param.put("formStore", formStore);
         if (!isB2b)
@@ -398,7 +400,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     }
 
 
-    long subMitTime;
+    private long subMitTime;
 
     /**
      * 判断是否符合签到
@@ -475,9 +477,9 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
             param.put("code", 1);
         if (isB2b) {
             String url = ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().get_plat_senior_setting_url;
-            HttpHandler.getInstance().loadB2BByNet(LOAD_WORK_SET, url, param, null, this);
+            HttpHandler.getInstance().loadB2BByNet(LOAD_WORK_SET, url, param, bundle, this);
         } else
-            HttpHandler.getInstance().loadERPByNet(LOAD_WORK_SET, "/mobile/getconfigs.action", param, null, this);
+            HttpHandler.getInstance().loadERPByNet(LOAD_WORK_SET, "/mobile/getconfigs.action", param, bundle, this);
     }
 
 

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IMessageView.java

@@ -16,4 +16,6 @@ public interface IMessageView {
     void clearSearch();
 
     void updateHeaderView(int postion, int num, String subTitle);
+
+    void changeNet(boolean workConnected);
 }

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

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.xzjmyk.pm.activity.AppConfig;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.ui.erp.util.auto.HttpHandler;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.wxapi.ApiConfig;
@@ -90,14 +91,19 @@ public class CommonInterface implements HttpHandler.OnResultListener {
      * @param onResultListener
      */
     public void addOutSet(int distance, int time, boolean isAuto, OnResultListener onResultListener) {
+        boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
+
         Map<String, Object> param = new HashMap<>();
         param.put("caller", "OUTSET");
         Map<String, Object> map = new HashMap<>();
+        if (isB2b) {
+            map.put("enuu", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu"));
+            map.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "b2b_uu"));
+        }
         map.put("mo_distance", distance);//距离
         map.put("mo_time", time);//预留时间
         map.put("mo_autosign", isAuto ? 1 : 0);//是否自动外勤
         param.put("formStore", StringUtils.mapToJson(map));
-        boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
         if (isB2b) {
             Bundle bundle = new Bundle();
             bundle.putSerializable("onResultListener", onResultListener);
@@ -146,9 +152,9 @@ public class CommonInterface implements HttpHandler.OnResultListener {
                     } else object = json;
                     int distance = object.containsKey("mo_distance") ? object.getInteger("mo_distance") : object.getIntValue("MO_DISTANCE");
                     int time = object.containsKey("mo_time") ? object.getInteger("mo_time") : object.getIntValue("MO_TIME");
-                    boolean isAuto = true;
                     //TODO 先屏蔽
 //                    boolean isAuto = ((object.containsKey("mo_autosign") ? object.getInteger("mo_autosign") : object.getIntValue("MO_AUTOSIGN")) > 0) ? true : false;
+                    boolean isAuto = true;
                     //获取到外勤设置   保存下来
                     PreferenceUtils.putBoolean(AppConfig.AUTO_MISSION, isAuto);
                     PreferenceUtils.putInt(AppConfig.ALARM_MISSION_DISTANCE, distance);

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

@@ -38,7 +38,7 @@ import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
 import com.xzjmyk.pm.activity.ui.circle.BusinessCircleActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.BaseInfoActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.oa.WorkActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.MissionActivity;
 import com.xzjmyk.pm.activity.ui.erp.model.Master;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
@@ -281,7 +281,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         findViewById(R.id.test_rl).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                Intent intent = new Intent(ct, WorkActivity.class);
+                Intent intent = new Intent(ct, MissionActivity.class);
                 intent.putExtra(AppConfig.IS_ADMIN, true);//上传管理员状态
                 startActivity(intent);
             }

+ 0 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java

@@ -445,7 +445,6 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
             formStoreMap.put("CS_INNERDISTANCE", Double.valueOf(CommonUtil.getNumByString(work_range.getText().toString())).doubleValue()); //办公范围
             formStoreMap.put("enuu", Long.valueOf(CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu")).longValue());
             formStoreMap.put("emcode", Long.valueOf(CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "b2b_uu")).longValue());
-
             String url = ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().save_plat_office_address_url;
             HashMap<String, Object> params = new HashMap<>();
             String formStore = JSON.toJSONString(formStoreMap);
@@ -461,7 +460,6 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
             Map<String, Object> formStoreMap = new HashMap<>();
             formStoreMap.put("CS_VALIDRANGE", CommonUtil.getNumByString(sign_range.getText().toString())); //打卡范围
             formStoreMap.put("CS_INNERDISTANCE", CommonUtil.getNumByString(work_range.getText().toString())); //办公范围
-
             String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "/mobile/updatecomaddressset.action";
             HashMap<String, Object> params = new HashMap<>();
             String formStore = JSON.toJSONString(formStoreMap);
@@ -478,7 +476,6 @@ public class OfficeAddressSettingsActivity extends BaseActivity {
     }
 
     private void doSelectRange(String[] distance, int requestCode) {
-
         ArrayList<SelectBean> beans = new ArrayList<>();
         SelectBean bean = null;
         for (String e : distance) {

+ 16 - 10
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/NewMessageFragment.java

@@ -84,8 +84,9 @@ public class NewMessageFragment extends EasyFragment implements IMessageView, Re
     }
 
     @Override
-    public void onDestroyView() {
+    public void onDestroy() {
         super.onDestroyView();
+        presenter.onDestroyView(mContext);
     }
 
     @Override
@@ -95,25 +96,19 @@ public class NewMessageFragment extends EasyFragment implements IMessageView, Re
 
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
-        LogUtil.d("onCreateView:"+ DateFormatUtil.getDateTimeStr());
+        LogUtil.d("onCreateView:" + DateFormatUtil.getDateTimeStr());
         if (createView) {
             ViewUtils.inject(getmRootView());
             platform = ApiUtils.getApiModel() instanceof ApiPlatform;
             initView();
             initEvent();
-        } else {
-            if (presenter != null)
-                presenter.loadData();
         }
-        LogUtil.d("onCreateView end:"+ DateFormatUtil.getDateTimeStr());
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        LogUtil.d("onResume():" + DateFormatUtil.getDateTimeStr());
-        presenter.loadData(true);
-        LogUtil.d("onResume() end:"+ DateFormatUtil.getDateTimeStr());
+        presenter.loadData();
     }
 
     private void initEvent() {
@@ -166,7 +161,6 @@ public class NewMessageFragment extends EasyFragment implements IMessageView, Re
         mAdapter = new MessageAdapter(null, mContext);
         listView.getRefreshableView().setAdapter(mAdapter);
         presenter = new MessagePresenter(mContext, this);
-        presenter.loadData();
     }
 
     private View initHeaderView() {
@@ -241,6 +235,7 @@ public class NewMessageFragment extends EasyFragment implements IMessageView, Re
     }
 
 
+
     //语音数据回调
     @Override
     public void onResult(RecognizerResult recognizerResult, boolean b) {
@@ -337,6 +332,17 @@ public class NewMessageFragment extends EasyFragment implements IMessageView, Re
         }
     }
 
+    @Override
+    public void changeNet(boolean workConnected) {
+        if (message_net_set != null) {
+            if (!workConnected) {
+                message_net_set.setVisibility(View.VISIBLE);
+            } else {
+                message_net_set.setVisibility(View.GONE);
+            }
+        }
+    }
+
 
     private void updateHeaderView(TextView num_tv, TextView content_tv, TextView time_tv, int num, String subTitle) {
         if (num_tv != null) {

+ 8 - 15
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/WorkHandlerUtil.java

@@ -445,13 +445,7 @@ public class WorkHandlerUtil {
      * @return
      */
     public static MissionModel handlerEntity(boolean isB2b, JSONObject object) {
-        if (isB2b && object.containsKey("outPlanDetails")) {
-            if (object.getJSONArray("outPlanDetails").size() > 0)
-                object = object.getJSONArray("outPlanDetails").getJSONObject(0);
-            else return null;
-        }
         MissionModel entity = new MissionModel();
-        //TODO 开始时间和结束时间没有
         try {
             long mpd_actdate = object.getLongValue("MPD_ACTDATE");
             long mpd_outdate = object.getLongValue("MPD_OUTDATE");
@@ -461,10 +455,9 @@ public class WorkHandlerUtil {
                 entity.setRealLeave(TimeUtils.f_long_2_str(mpd_outdate));
         } catch (Exception e) {
         }
-
-        String mpd_recorddate;
-        String mp_visittime;
-        String mpd_kind;
+        String mpd_recorddate;//录入时间
+        String mp_visittime;//预计到达时间
+        String mpd_kind;//半天
         if (isB2b) {
             mpd_recorddate = TimeUtils.f_long_2_str(object.getLongValue("mpd_recorddate"));
             mp_visittime = TimeUtils.f_long_2_str(object.getLongValue("mpd_arrivedate"));
@@ -474,20 +467,20 @@ public class WorkHandlerUtil {
             mp_visittime = object.getString("MPD_ARRIVEDATE");
             mpd_kind = object.getString("MPD_KIND");
         }
-        double longitude = object.getDoubleValue(isB2b ? "longitude" : "MD_LONGITUDE");
-        double latitude = object.getDoubleValue(isB2b ? "latitude" : "MD_LATITUDE");
+        double longitude = object.getDoubleValue(isB2b ? "md_longitude" : "MD_LONGITUDE");
+        double latitude = object.getDoubleValue(isB2b ? "md_latitude" : "MD_LATITUDE");
         if (longitude > 0 && latitude > 0) {
             entity.setLatLng(new LatLng(latitude, longitude));
         }
+        entity.setVisitTime(mp_visittime);
+        entity.setRecorddate(mpd_recorddate);
+        entity.setType(getType(mpd_kind));
         entity.setDistance(object.getDoubleValue(isB2b ? "mpd_distance" : "MPD_DISTANCE"));
         entity.setId(object.getInteger(isB2b ? "mpd_id" : "MPD_ID"));
         entity.setCompanyName(object.getString(isB2b ? "mpd_location" : "MPD_COMPANY"));
         entity.setCompanyAddr(object.getString(isB2b ? "mpd_address" : "MPD_ADDRESS"));
         entity.setRemark(object.getString(isB2b ? "mpd_remark" : "MPD_REMARK"));
         entity.setLocation(object.getString(isB2b ? "mpd_location" : "MPD_LOCATION"));
-        entity.setVisitTime(mp_visittime);
-        entity.setRecorddate(mpd_recorddate);
-        entity.setType(getType(mpd_kind));
         entity.setStatus(1);
         return entity;
     }