Sfoglia il codice sorgente

关闭测试选项

Bitlikr 9 anni fa
parent
commit
cd0283cb29
29 ha cambiato i file con 302 aggiunte e 229 eliminazioni
  1. 2 2
      WeiChat/src/main/AndroidManifest.xml
  2. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java
  3. 14 14
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MissionDao.java
  4. 10 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java
  5. 6 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  6. 10 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/DestinationActivity.java
  7. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/LocationSearchActivity.java
  8. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java
  9. 14 14
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MissionPlanActivity.java
  10. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java
  11. 12 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/TestActivity.java
  12. 44 34
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkActivity.java
  13. 4 23
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/WorkAdapter.java
  14. 9 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/MissionModel.java
  15. 57 30
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/WorkPresenter.java
  16. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/HttpImp.java
  17. 13 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IChche.java
  18. 16 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IMissionViewPresenter.java
  19. 15 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IWork.java
  20. 7 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IWorkPresenter.java
  21. 5 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/SigninUtil.java
  22. 16 24
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/AutoErpService.java
  23. 4 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/CacheAutoUtil.java
  24. 4 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/ReckonAutoUtil.java
  25. 6 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/auto/AlarmManage.java
  26. 4 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/auto/AlarmService.java
  27. 4 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/auto/SigningPresenter.java
  28. 17 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/crouton/Crouton.java
  29. 1 7
      WeiChat/src/main/res/layout/fragment_me.xml

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

@@ -795,8 +795,8 @@
 
         <service
             android:name=".ui.erp.util.attendance.AutoErpService"
-            android:enabled="false"
-            android:exported="false"></service>
+            android:enabled="true"
+            android:exported="true"/>
     </application>
 
 </manifest>

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

@@ -39,11 +39,12 @@ public class BdLocationHelper {
         mProvinceName = LocationSp.getInstance(context).getProvinceName("");
         mCityName = LocationSp.getInstance(context).getCityName("");
         mDistrictName = LocationSp.getInstance(context).getDistrictName("");
+
         mLocationClient = new LocationClient(context.getApplicationContext()); // 声明LocationClient类
         mLocationClient.registerLocationListener(mMyLocationListener); // 注册监听函数
         LocationClientOption option = new LocationClientOption();
         option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
-        option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系
+        option.setCoorType("bd09ll");//可选,默认gcj02  bd09ll,设置返回的定位结果坐标系
         option.setScanSpan(scanSpan);// 设置发起定位请求的间隔时间为10s;//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
         option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
         option.setOpenGps(true);//可选,默认false,设置是否使用gps
@@ -54,7 +55,7 @@ public class BdLocationHelper {
         option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集
         option.setEnableSimulateGps(true);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要
         option.setNeedDeviceDirect(false);
-        // option.disableCache(true);
+//        option.disableCache(true);//是否禁用缓存数据
         mLocationClient.setLocOption(option);
         //requestLocation();//重新定位
     }
@@ -148,7 +149,6 @@ public class BdLocationHelper {
     private int type = 1;//1.内勤  2.外勤
 
 
-
     public String getName() {
         return pois == null ? (name == null ? "当前位置" : name) : (pois.get(0) == null ? (name == null ? "当前位置" : name) : pois.get(0).getName());
     }

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

@@ -10,7 +10,7 @@ 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.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 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;
@@ -68,10 +68,10 @@ public class MissionDao {
 
 
     //获取当天全部数据
-    public List<MissionPlanEntity> queryByEnCode() {
+    public List<MissionModel> queryByEnCode() {
         SQLiteDatabase db = null;
         Cursor cursor = null;
-        List<MissionPlanEntity> missions = null;
+        List<MissionModel> missions = null;
         try {
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
@@ -83,10 +83,10 @@ public class MissionDao {
             String selection = "master =? and emcode=? and date=?";
             String[] selecttionArg = {master, emcode, date};
             cursor = db.query(tibleName, columns, selection, selecttionArg, null, null, null);
-            MissionPlanEntity mission = null;
+            MissionModel mission = null;
             missions = new ArrayList<>();
             while (cursor.moveToNext()) {
-                mission = new MissionPlanEntity();
+                mission = new MissionModel();
                 mission.setId(cursor.getInt(0));
                 mission.setCompanyName(cursor.getString(1));
                 mission.setCompanyAddr(cursor.getString(2));
@@ -115,7 +115,7 @@ public class MissionDao {
 
 
     //更新或是创建一个数据
-    public boolean updataOrCreate(MissionPlanEntity mission) {
+    public boolean updataOrCreate(MissionModel mission) {
         if (mission == null) return false;
         if (mission.getStatus() > 0) {//更新
             return updata(mission);
@@ -135,7 +135,7 @@ public class MissionDao {
 //    }
 
 
-    public boolean updataOrCreate(List<MissionPlanEntity> entities) {
+    public boolean updataOrCreate(List<MissionModel> entities) {
         if (ListUtils.isEmpty(entities)) return false;
         show("updataOrCreate");
         SQLiteDatabase db = null;
@@ -147,7 +147,7 @@ public class MissionDao {
             db = helper.getWritableDatabase();
             db.beginTransaction();//开启事务
             ContentValues values = null;
-            for (MissionPlanEntity mission : entities) {
+            for (MissionModel mission : entities) {
                 show("MissionPlanEntity");
                 //对象为空或是拜访时间没有情况下不插入数据库
                 if (mission == null || StringUtils.isEmpty(mission.getVisitTime())) {
@@ -192,7 +192,7 @@ public class MissionDao {
     }
 
 
-    private boolean insertAll(List<MissionPlanEntity> entities) {
+    private boolean insertAll(List<MissionModel> entities) {
         show("insertAll");
         SQLiteDatabase db = null;
         long i = 0;
@@ -203,7 +203,7 @@ public class MissionDao {
             db = helper.getWritableDatabase();
             db.beginTransaction();//开启事务
             ContentValues values = null;
-            for (MissionPlanEntity mission : entities) {
+            for (MissionModel mission : entities) {
                 show("MissionPlanEntity");
                 //对象为空或是拜访时间没有情况下不插入数据库
                 if (mission == null || StringUtils.isEmpty(mission.getVisitTime())) {
@@ -242,7 +242,7 @@ public class MissionDao {
     }
 
     //删除全部
-    private boolean deleteAll(List<MissionPlanEntity> dbDatas) {
+    private boolean deleteAll(List<MissionModel> dbDatas) {
         if (ListUtils.isEmpty(dbDatas)) return false;
         SQLiteDatabase db = null;
         long i = 0;
@@ -252,7 +252,7 @@ public class MissionDao {
             if (StringUtils.isEmpty(master) || StringUtils.isEmpty(emcode)) return false;
             db = helper.getWritableDatabase();
             db.beginTransaction();
-            for (MissionPlanEntity e : dbDatas) {
+            for (MissionModel e : dbDatas) {
                 String where = "master=? and emcode=? and id=?";
                 String[] whereArg = {master, emcode, String.valueOf(e.getId())};
                 i = db.delete(tibleName, where, whereArg);
@@ -271,7 +271,7 @@ public class MissionDao {
     }
 
     //更新
-    public boolean updata(MissionPlanEntity mission) {
+    public boolean updata(MissionModel mission) {
         SQLiteDatabase db = null;
         long i = 0;
         try {
@@ -303,7 +303,7 @@ public class MissionDao {
     }
 
     //插入一个数据
-    private boolean insert(MissionPlanEntity mission) {
+    private boolean insert(MissionModel mission) {
         SQLiteDatabase db = null;
         long i = 0;
         try {

+ 10 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java

@@ -42,10 +42,12 @@ public class WorkModelDao {
      *
      * @param models
      */
-    public void createOrUpdata(List<WorkModel> models) {
+    public boolean createOrUpdata(List<WorkModel> models) {
         List<WorkModel> chche = query(true);
-        if (ListUtils.isEmpty(chche)) insert(models);
-        else {
+        boolean saveOk = false;
+        if (ListUtils.isEmpty(chche)) {
+            saveOk = insert(models) > 0;
+        } else {
             List<WorkModel> update = new ArrayList<>();
             List<WorkModel> delete = new ArrayList<>();
             for (int i = 0; i < chche.size(); i++) {
@@ -79,11 +81,12 @@ public class WorkModelDao {
                     }
                 }
             }
-            delete(delete);
-            insert(models);
-            update(update);
+            long d = delete(delete);
+            long i = insert(models);
+            long u = update(update);
+            saveOk = d > 0 || i > 0 || u > 0;
         }
-
+        return saveOk;
     }
 
 
@@ -383,5 +386,4 @@ public class WorkModelDao {
     }
 
 
-
 }

+ 6 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -45,7 +45,7 @@ import com.xzjmyk.pm.activity.ui.erp.fragment.ContactFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.WorksFragment;
 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.auto.AlarmService;
+import com.xzjmyk.pm.activity.ui.erp.util.attendance.AutoErpService;
 import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.groupchat.GroupChatFragment;
 import com.xzjmyk.pm.activity.ui.me.MeFragment;
@@ -408,8 +408,11 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
             PushManager.stopWork(this);
         }
         //TODO 发布版本关闭
-        if (AppConfig.COMPANY)
-            startService(new Intent(this, AlarmService.class));
+        if (AppConfig.COMPANY){
+//            startService(new Intent(this, AlarmService.class));
+            startService(new Intent(this, AutoErpService.class));
+
+        }
         mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
         if (savedInstanceState != null) {
             restoreState(savedInstanceState);

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

@@ -32,7 +32,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 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.JsonValidator;
@@ -56,8 +56,8 @@ public class DestinationActivity extends BaseActivity {
     private EditText search_edit;
 
     private int pager = 1;
-    private List<MissionPlanEntity> allList;//所有数据搜索
-    private List<MissionPlanEntity> showList;//适配器数据
+    private List<MissionModel> allList;//所有数据搜索
+    private List<MissionModel> showList;//适配器数据
     private DestinAdapter adapter;
 
     private Handler handler = new Handler() {
@@ -101,13 +101,13 @@ public class DestinationActivity extends BaseActivity {
             public void afterTextChanged(Editable editable) {
                 String str = editable.toString();
                 showList.clear();
-                for (MissionPlanEntity e : allList) {
+                for (MissionModel e : allList) {
                     if (isinclude(str, e)) {
                         showList.add(e);
                     }
                 }
                 if (!StringUtils.isEmpty(str) && ListUtils.isEmpty(showList) && !ListUtils.isEmpty(allList)) {
-                    MissionPlanEntity empty = new MissionPlanEntity();
+                    MissionModel empty = new MissionModel();
                     empty.setCompanyName(str);
                     empty.setStatus(2);
                     showList.add(empty);
@@ -118,7 +118,7 @@ public class DestinationActivity extends BaseActivity {
         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
-                MissionPlanEntity entity = showList.get(i - 1 < 0 ? 0 : i - 1);
+                MissionModel entity = showList.get(i - 1 < 0 ? 0 : i - 1);
                 if (entity == null) return;
                 if (entity.getStatus() != 2) {//正常公司
                     Intent intent = new Intent();
@@ -173,7 +173,7 @@ public class DestinationActivity extends BaseActivity {
 
 
     //判断输入的字符是否在里面
-    private boolean isinclude(String str, MissionPlanEntity e) {
+    private boolean isinclude(String str, MissionModel e) {
         String text = e.getCompanyAddr() + e.getCompanyName();
         return StringUtils.isInclude(text, str);
     }
@@ -181,11 +181,11 @@ public class DestinationActivity extends BaseActivity {
     //处理请求下来的数据
     private void handleDada(JSONArray array) {
         if (ListUtils.isEmpty(array)) return;
-        MissionPlanEntity entity = null;
+        MissionModel entity = null;
         JSONObject object = null;
         for (int i = 0; i < array.size(); i++) {
             try {
-                entity = new MissionPlanEntity();
+                entity = new MissionModel();
                 object = array.getJSONObject(i);
                 entity.setCompanyAddr(object.getString("MD_ADDRESS"));
                 entity.setVisitcount(object.getInteger("MD_VISITCOUNT"));
@@ -234,7 +234,7 @@ public class DestinationActivity extends BaseActivity {
         @Override
         public View getView(int i, View view, ViewGroup viewGroup) {
             BaseViewHolder holder = null;
-            final MissionPlanEntity entity = showList.get(i);
+            final MissionModel entity = showList.get(i);
             if (view == null) {
                 holder = new BaseViewHolder();
                 view = LayoutInflater.from(ct).inflate(R.layout.item_aims_base, null);

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

@@ -48,7 +48,7 @@ import static android.view.View.GONE;
  * 公共:
  * 1、title(标题String) 2、style(主题 int)
  * 3、single(是否单选 boolean) 4、search(是否有搜索框 boolean)
- * 5、resultcode(返回码 int) 6、resultName(返回key String )
+ * 5、resultCode(返回码 int) 6、resultName(返回key String )
  */
 public class LocationSearchActivity extends BaseActivity {
     @ViewInject(R.id.search_edit)
@@ -65,7 +65,7 @@ public class LocationSearchActivity extends BaseActivity {
     private int resultCode = 0x20;//返回码
     private int type = 1;//搜索方式int 1.搜索附近 2.搜索地名
     private String resultName = "resultName";//返回的参数名称
-    private String keyWork = "优软科技";//返回的参数名称
+    private String keyWork;//返回的参数名称
     private int radius = 1000;
 
 
@@ -135,7 +135,7 @@ public class LocationSearchActivity extends BaseActivity {
         if (single)
             intent.putExtra("resultName", poi);
         else
-            intent.putParcelableArrayListExtra("resultName", selectedData);
+            intent.putParcelableArrayListExtra(resultName, selectedData);
         setResult(resultCode, intent);
         finish();
     }

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

@@ -383,7 +383,7 @@ public class MeetDetailsActivity extends BaseActivity implements View.OnClickLis
                 intent.putExtra("title", "地点微调");
                 intent.putExtra("single", true);
                 intent.putExtra("radius", 300);
-                intent.putExtra("resultcode", 0x20);
+                intent.putExtra("resultCode", 0x20);
                 intent.putExtra("resultName", "resultName");
                 startActivityForResult(intent, 0x20);
                 break;

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

@@ -26,7 +26,7 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.commoninterface.SigningInterface;
 import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
@@ -62,7 +62,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
 
     private boolean adminStatus;
     private MissonPlanAdapter adapter;
-    private List<MissionPlanEntity> entitys;
+    private List<MissionModel> entitys;
     private int position;//选择的item,用于调转界面
     private int flag = 0;
 
@@ -171,8 +171,8 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
     }
 
 
-    private void addEntity(List<MissionPlanEntity> entitys) {
-        MissionPlanEntity entity = new MissionPlanEntity();
+    private void addEntity(List<MissionModel> entitys) {
+        MissionModel entity = new MissionModel();
         entitys.add(entity);
     }
 
@@ -181,7 +181,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (resultCode != 0x20 || data == null) return;
         if (requestCode == 0x20) {//选择公司
-            MissionPlanEntity entity = data.getParcelableExtra("data");
+            MissionModel entity = data.getParcelableExtra("data");
             if (entity == null) return;
             if (ListUtils.isEmpty(entitys) || entitys.size() <= position) return;
             entitys.get(position).setCompanyName(StringUtils.isEmpty(entity.getCompanyName()) ? "" : entity.getCompanyName());
@@ -222,7 +222,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
     private void submit() {
         if (ListUtils.isEmpty(entitys)) return;
         for (int i = 0; i < entitys.size(); i++) {
-            MissionPlanEntity e = entitys.get(i);
+            MissionModel e = entitys.get(i);
             if (canSubmit(e, i + 1)) {
                 submit(e, i);
             }
@@ -231,7 +231,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
     }
 
     //判断是否符合提交  公司名称  公司地址  里程 预计到达时间
-    private boolean canSubmit(MissionPlanEntity e, int i) {
+    private boolean canSubmit(MissionModel e, int i) {
         if (e == null) return false;
         else if (e.getStatus() == 1) {
             return false;
@@ -252,7 +252,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
 
 
     //提交到服务器
-    private void submit(final MissionPlanEntity entity, final int position) {
+    private void submit(final MissionModel entity, final int position) {
         if (!MyApplication.getInstance().isNetworkActive()) {
             ViewUtil.ToastMessage(ct, ct.getResources().getString(R.string.networks_out), Style.holoRedLight, 2000);
             return;
@@ -313,7 +313,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
     }
 
     //保存外勤计划目的地
-    private void saveOutAddress(MissionPlanEntity entity) {
+    private void saveOutAddress(MissionModel entity) {
         if (entity.getLatLng() == null || entity.getLatLng().latitude == 0 || entity.getLatLng().longitude == 0)
             return;
         //获取网络数据
@@ -341,7 +341,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
     }
 
     //保存外勤计划接口
-    private void submit(int id, String code, MissionPlanEntity entity, int position) {
+    private void submit(int id, String code, MissionModel entity, int position) {
         //获取网络数据
         String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/addOutPlan.action";
         Map<String, Object> param = new HashMap<>();
@@ -383,10 +383,10 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
             return;
         } else {//获取到拜访计划数据
             JSONObject object = null;
-            MissionPlanEntity entity = null;
+            MissionModel entity = null;
             for (int i = 0; i < array.size(); i++) {
                 object = array.getJSONObject(i);
-                entity = new MissionPlanEntity();
+                entity = new MissionModel();
                 entity.setCompanyName(object.getString("MPD_COMPANY"));
                 entity.setCompanyAddr(object.getString("MPD_ADDRESS"));
                 double longitude = object.getDoubleValue("MD_LONGITUDE");
@@ -427,7 +427,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
         }
 
         private void initView(BaseViewHolder holder, int position) {
-            MissionPlanEntity entity = entitys.get(position);
+            MissionModel entity = entitys.get(position);
             if (entity == null) return;
             holder.item_title_tv.setText("目的地 " + (position + 1));
             holder.item_delete_tv.setVisibility(entity.getStatus() != 1 ? View.VISIBLE : View.GONE);
@@ -467,7 +467,7 @@ public class MissionPlanActivity extends BaseActivity implements View.OnClickLis
                     intent.putExtra("keyWork", company);
                     intent.putExtra("title", "选择地址");
                     intent.putExtra("single", true);
-                    intent.putExtra("resultcode", 0x20);
+                    intent.putExtra("resultCode", 0x20);
                     intent.putExtra("resultName", "resultName");
                     MissionPlanActivity.this.position = position;
                     startActivityForResult(intent, 0x21);

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

@@ -356,7 +356,6 @@ public class OutSigninOKActivity extends BaseActivity {
         }
     }
 
-
     private final int whatSignin = 0x12;
     private boolean isSigninOK = false;
     private Handler handler = new Handler() {

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

@@ -15,10 +15,10 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.db.dao.SigningDao;
+import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.entity.ErrorEntity;
-import com.xzjmyk.pm.activity.ui.erp.entity.SigningBean;
+import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 
@@ -57,18 +57,20 @@ public class TestActivity extends BaseActivity implements View.OnClickListener {
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.error_list:
-                List<SigningBean> beens = SigningDao.getInstance().queryAll(true);
+                List<WorkModel> beens = WorkModelDao.getInstance().query(false);
                 if (ListUtils.isEmpty(beens)) {
                     show("models  为空");
                 } else {
-                    for (SigningBean m : beens) {
+                    for (WorkModel m : beens) {
                         show("getWorkTime" + m.getWorkTime());
-                        show("getWorkend" + m.getOffTime());
-                        show("getWorkStart" + m.getStartTime());
-                        show("getWorkSignin" + m.getEndTime());
-
-                        show("getWorkTime" + m.getWorkSignin());
-                        show("getWorkend" + m.getOffSignin());
+                        show("getOffTime" + m.getOffTime());
+                        show("getWorkStart" + m.getWorkStart());
+                        show("getWorkSignin" + m.getWorkSignin());
+
+                        show("getOffTime" + m.getOffTime());
+                        show("getOffSignin" + m.getOffSignin());
+                        show("getOffend" + m.getOffend());
+                        show("getOffStart" + m.getOffStart());
                         show("__________________________________");
                     }
                 }

+ 44 - 34
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkActivity.java

@@ -19,6 +19,7 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.WorkAdapter;
 import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.presenter.WorkPresenter;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWorkPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWorkView;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -30,6 +31,7 @@ import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.wheel.OASigninPicker;
 
+import java.util.ArrayList;
 import java.util.List;
 
 
@@ -53,7 +55,7 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
     private WorkAdapter adapter;
 
     private boolean isToday = true;
-    private WorkPresenter presenter;
+    private IWorkPresenter presenter;
     private String macAddress;
     private String macError;//变更mac地址
 
@@ -89,7 +91,7 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
         adapter = new WorkAdapter(ct);
         listview.setLayoutManager(new LinearLayoutManager(ct));
         listview.setAdapter(adapter);
-        presenter.start();
+        presenter.startForUi();
         date_tv.setText(TimeUtils.long2str(System.currentTimeMillis(), "yyyy年MM月dd日") + TimeUtils.getWeek(System.currentTimeMillis()));
 
         findViewById(R.id.signin_btn).setOnClickListener(this);
@@ -129,23 +131,53 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
 
     @Override
     public void showFristMac() {
+        MaterialDialog dialog = new MaterialDialog.Builder(ct).title(R.string.prompt_title).content(R.string.show_frist_mac)
+                .positiveText(R.string.sure).negativeText(R.string.cancel).autoDismiss(false).callback(new MaterialDialog.ButtonCallback() {
+                    @Override
+                    public void onPositive(MaterialDialog dialog) {
+                        presenter.submitWork((ArrayList<WorkModel>) adapter.getModels(), macAddress);
+                        dialog.dismiss();
+                    }
 
+                    @Override
+                    public void onNegative(MaterialDialog dialog) {
+                        super.onNegative(dialog);
+                        dialog.dismiss();
+                    }
+                }).build();
+        dialog.show();
     }
 
     @Override
     public void showErrorMac() {
+        MaterialDialog dialog = new MaterialDialog.Builder(ct).title("提示").content(getString(R.string.other_phone_error))
+                .positiveText("确定").negativeText("取消").autoDismiss(false).callback(new MaterialDialog.ButtonCallback() {
+                    @Override
+                    public void onPositive(MaterialDialog dialog) {
+                        dialog.dismiss();
+                        Intent intent = new Intent(ct, ChangeMobileActivity.class);
+                        intent.putExtra("macAddress", macAddress);
+                        startActivityForResult(intent, PHONE_CHANGE);
+                    }
 
+                    @Override
+                    public void onNegative(MaterialDialog dialog) {
+                        super.onNegative(dialog);
+                        dialog.dismiss();
+                    }
+                }).build();
+        dialog.show();
     }
 
 
     @Override
     public void showToast(String message, int colorId) {
-        Crouton.makeText(ct, message, colorId);
+        Crouton.showToast(ct, message, colorId);
     }
 
     @Override
     public void showToast(int reId, int colorId) {
-        Crouton.makeText(ct, reId, colorId);
+        Crouton.showToast(ct, reId, colorId);
     }
 
 
@@ -153,8 +185,8 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.signin_btn:
-//                if (isSubmitAble())
-//                    presenter.submit();
+                if (isSubmitAble())
+                    presenter.submit((ArrayList<WorkModel>) adapter.getModels(), macAddress);
                 break;
             case R.id.date_tv:
                 showDateDialog();
@@ -165,7 +197,7 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
                 intent.putExtra("title", "地点微调");
                 intent.putExtra("single", true);
                 intent.putExtra("radius", 300);
-                intent.putExtra("resultcode", ADDRESS_CHANGE);
+                intent.putExtra("resultCode", ADDRESS_CHANGE);
                 intent.putExtra("resultName", "resultName");
                 startActivityForResult(intent, ADDRESS_CHANGE);
                 break;
@@ -173,27 +205,6 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
     }
 
 
-    private void showChangePhone(String message) {
-        MaterialDialog dialog = new MaterialDialog.Builder(ct).title("提示").content(message)
-                .positiveText("确定").negativeText("取消").autoDismiss(false).callback(new MaterialDialog.ButtonCallback() {
-                    @Override
-                    public void onPositive(MaterialDialog dialog) {
-                        //TODO 调转到申请更换手机界面
-                        dialog.dismiss();
-                        Intent intent = new Intent(ct, ChangeMobileActivity.class);
-                        intent.putExtra("macAddress", macAddress);
-                        startActivityForResult(intent, PHONE_CHANGE);
-                    }
-
-                    @Override
-                    public void onNegative(MaterialDialog dialog) {
-                        super.onNegative(dialog);
-                        dialog.dismiss();
-                    }
-                }).build();
-        dialog.show();
-    }
-
     //显示时间选择器
     private void showDateDialog() {
         OASigninPicker picker = new OASigninPicker(this);
@@ -234,7 +245,7 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
         if (requestCode == ADDRESS_CHANGE && resultCode == ADDRESS_CHANGE) {//地址微调
-            PoiInfo poi = data.getParcelableExtra(LocationMapActivity.REQUESTNAME);
+            PoiInfo poi = data.getParcelableExtra("resultName");
             if (poi == null || presenter == null) return;
             presenter.changPoi(poi);
         } else if (requestCode == PHONE_CHANGE && resultCode == 0x20) {
@@ -246,17 +257,16 @@ public class WorkActivity extends BaseActivity implements View.OnClickListener,
 
 
     private boolean isSubmitAble() {
-        if (isToday) {
-            Crouton.makeText(this, R.string.not_today, R.color.load_warning);
+        if (!isToday) {
+            Crouton.showToast(this, R.string.not_today, R.color.load_warning);
             return false;
         } else if (!CommonUtil.isNetWorkConnected(ct)) {
-            Crouton.makeText(this, R.string.networks_out, R.color.load_warning);
+            Crouton.showToast(this, R.string.networks_out, R.color.load_warning);
             return false;
         } else if (adapter == null || ListUtils.isEmpty(adapter.getModels())) {
-            Crouton.makeText(this, R.string.not_work_message, R.color.load_warning);
+            Crouton.showToast(this, R.string.not_work_message, R.color.load_warning);
             return false;
         }
         return true;
     }
-
 }

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

@@ -60,7 +60,6 @@ public class WorkAdapter extends RecyclerView.Adapter<WorkAdapter.ViewHoler> {
             holder.work_signin.setText(getNull(model.getWorkSignin()));
             holder.off_time.setText(getNull(model.getOffTime()));
             holder.off_signin.setText(getNull(model.getOffSignin()));
-
             //处理迟到、早退、缺勤
             String workTag = null;
             if (StringUtils.isEmpty(model.getWorkSignin())) {
@@ -76,6 +75,7 @@ public class WorkAdapter extends RecyclerView.Adapter<WorkAdapter.ViewHoler> {
             } else if (model.getWorkSignin().compareTo(model.getWorkTime()) > 0) {
                 workTag = "迟到";
             }
+
             if (StringUtils.isEmpty(workTag)) {
                 holder.work_tag.setVisibility(View.GONE);
                 holder.work_supple.setVisibility(View.GONE);
@@ -84,7 +84,7 @@ public class WorkAdapter extends RecyclerView.Adapter<WorkAdapter.ViewHoler> {
                 holder.work_tag.setVisibility(View.VISIBLE);
                 if ("缺勤".equals(workTag)) {
                     holder.work_supple.setVisibility(View.VISIBLE);
-                }else{
+                } else {
                     holder.off_supple.setVisibility(View.GONE);
                 }
             }
@@ -111,9 +111,9 @@ public class WorkAdapter extends RecyclerView.Adapter<WorkAdapter.ViewHoler> {
             } else {
                 holder.off_tag.setText(offTag);
                 holder.off_tag.setVisibility(View.VISIBLE);
-                if ("缺勤".equals(workTag)) {
+                if ("缺勤".equals(offTag)) {
                     holder.off_supple.setVisibility(View.VISIBLE);
-                }else{
+                } else {
                     holder.off_supple.setVisibility(View.GONE);
                 }
             }
@@ -126,25 +126,6 @@ public class WorkAdapter extends RecyclerView.Adapter<WorkAdapter.ViewHoler> {
         }
     }
 
-    private String getTag(WorkModel model, boolean isWork) {
-        String start = isWork ? model.getWorkStart() : model.getOffStart();
-        String end = isWork ? model.getWorkend() : model.getOffend();
-        String time = isWork ? model.getWorkTime() : model.getOffTime();
-        String signin = isWork ? model.getWorkSignin() : model.getOffSignin();
-        if (isToday) {
-            if (StringUtils.isEmpty(signin)) {
-                return isWork ? getWorkTag(start, time, end, newTime) : getOffTag(start, time, end, newTime);
-            } else
-                return isWork ? getWorkTag(start, time, end, signin) : getOffTag(start, time, end, signin);
-        } else {
-            if (StringUtils.isEmpty(signin)) return "缺勤";
-            else if (isWork && signin.compareTo(time) > 0 && signin.compareTo(end) < 0) return "迟到";
-            else if (!isWork && signin.compareTo(time) < 0 && signin.compareTo(start) > 0)
-                return "早退";
-            else return "";
-
-        }
-    }
 
     /**
      * 获取上班的标签

+ 9 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/entity/MissionPlanEntity.java → WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/MissionModel.java

@@ -1,4 +1,4 @@
-package com.xzjmyk.pm.activity.ui.erp.entity;
+package com.xzjmyk.pm.activity.ui.erp.model;
 
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -8,7 +8,7 @@ import com.baidu.mapapi.model.LatLng;
 /**
  * Created by Bitliker on 2016/11/24.
  */
-public class MissionPlanEntity implements Parcelable {
+public class MissionModel implements Parcelable {
     private int id;    //id
     private String code;//编号(非人员编号)
     private String companyName;//公司名字
@@ -21,7 +21,7 @@ public class MissionPlanEntity implements Parcelable {
     private int visitcount;//拜访次数
     private int status;//状态  1.已提交  0.未提交  (数据库中 0.未进行  1.进行中  2.已完成  )
 
-    public MissionPlanEntity() {
+    public MissionModel() {
     }
 
     public int getId() {
@@ -112,7 +112,7 @@ public class MissionPlanEntity implements Parcelable {
         this.status = status;
     }
 
-    protected MissionPlanEntity(Parcel in) {
+    protected MissionModel(Parcel in) {
         id = in.readInt();
         code = in.readString();
         companyName = in.readString();
@@ -146,15 +146,15 @@ public class MissionPlanEntity implements Parcelable {
         return 0;
     }
 
-    public static final Creator<MissionPlanEntity> CREATOR = new Creator<MissionPlanEntity>() {
+    public static final Creator<MissionModel> CREATOR = new Creator<MissionModel>() {
         @Override
-        public MissionPlanEntity createFromParcel(Parcel in) {
-            return new MissionPlanEntity(in);
+        public MissionModel createFromParcel(Parcel in) {
+            return new MissionModel(in);
         }
 
         @Override
-        public MissionPlanEntity[] newArray(int size) {
-            return new MissionPlanEntity[size];
+        public MissionModel[] newArray(int size) {
+            return new MissionModel[size];
         }
     };
 }

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

@@ -11,8 +11,9 @@ import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
 import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
-import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWork;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWorkPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWorkView;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonInterfaceUtil;
@@ -20,17 +21,16 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.auto.HttpHandler;
+import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
-import com.xzjmyk.pm.activity.view.crouton.Style;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
-import static com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.ct;
-
 /**
  * 班次的管理器,先不处理数据库数据
  * Created by Bitliker on 2016/12/12.
@@ -42,7 +42,6 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     private final int MAC_VAL = 0x13;
     private final int LOAD_MAC = 0x14;
     private final int SIGNING = 0x15;//签到
-    private IWorkView iWorkView;
     private double distance;
     private double longitude;
     private double latitude;
@@ -57,6 +56,13 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     private CommonInterfaceUtil util;
 
 
+    private IWorkView iWorkView;
+    private IWork iWork;
+
+    public WorkPresenter(IWork iWork) {
+        this.iWork = iWork;
+    }
+
     public WorkPresenter(IWorkView iWorkView) {
         this.iWorkView = iWorkView;
         isMacInNet = true;
@@ -82,15 +88,18 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     }
 
 
-    private void validatorMac(String macAddress) {
+    private void validatorMac(ArrayList<WorkModel> models, String macAddress) {
         Map<String, Object> param = new HashMap<>();
         param.put("macAddress", macAddress);
+        param.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
+        Bundle bundle = new Bundle();
+        bundle.putParcelableArrayList("models", models);
         HttpHandler.getInstance().loadERPByNet(MAC_VAL, "mobile/addMobileMac.action",
-                param, null, this);
+                param, bundle, this);
     }
 
     //签到
-    private void signinWork(String code) {
+    private void signinWork(Bundle bunder, String code) {
         if (iWorkView != null) iWorkView.showLoading();
         isSubmiting = true;
         Map<String, Object> param = new HashMap<>();
@@ -98,8 +107,8 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         form.put("cl_code", code);
         form.put("cl_address", address);
         form.put("cl_phone", MyApplication.getInstance().mLoginUser.getTelephone());
-        form.put("cl_emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        String emname = CommonUtil.getSharedPreferences(ct, "erp_emname");
+        form.put("cl_emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
+        String emname = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_emname");
         if (StringUtils.isEmpty(emname)) {
             emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
         }
@@ -110,7 +119,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         param.put("caller", "CardLog");
         param.put("formStore", formStore);
         HttpHandler.getInstance().loadERPByNet(SIGNING, "mobile/saveCardLog.action",
-                param, null, this);
+                param, bunder, this);
     }
 
     //设置位置信息
@@ -283,9 +292,19 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
                 }
             }
         }
-        if (iWorkView == null) return;
-        iWorkView.showModel(models);
-        iWorkView.dimssLoading();
+        if (iWorkView != null) {
+            iWorkView.showModel(models);
+            iWorkView.dimssLoading();
+        } else if (iWork != null && !ListUtils.isEmpty(models)) {
+            final List<WorkModel> finaModels = models;
+            ThreadUtil.getInstance().addTask(new Runnable() {
+                @Override
+                public void run() {
+                    boolean save = WorkModelDao.getInstance().createOrUpdata(finaModels);
+                    iWork.saveStatus(save);
+                }
+            });
+        }
     }
 
     /**
@@ -339,8 +358,14 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     /********************
      * 对外接口
      *********************************/
+
+    @Override
+    public void startForSave() {
+        loadWorkData(System.currentTimeMillis());
+    }
+
     @Override
-    public void start() {
+    public void startForUi() {
         MyApplication.getInstance().getBdLocationHelper().setListener(new BdLocationHelper.OnBaiduResultListener() {
             @Override
             public void result(boolean isOk) {
@@ -365,10 +390,10 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
 
 
     @Override
-    public void submit(String macAddress) {
+    public void submit(ArrayList<WorkModel> models, String macAddress) {
         if (isSubmitAble()) {
             if (isMacInNet) {
-                submitWork(macAddress);
+                submitWork(models, macAddress);
             } else {
                 if (iWorkView != null)
                     iWorkView.showFristMac();
@@ -377,8 +402,8 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     }
 
     @Override
-    public void submitWork(String macAddress) {
-        validatorMac(macAddress);
+    public void submitWork(ArrayList<WorkModel> models, String macAddress) {
+        validatorMac(models, macAddress);
     }
 
 
@@ -387,16 +412,18 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         isChangPoi = true;
         loaction = StringUtils.isEmpty(poi.name) ? "" : poi.name;//位置名称
         address = StringUtils.isEmpty(poi.address) ? "" : poi.address;
-        iWorkView.showLocation(address);
         latitude = poi.location.latitude;
         longitude = poi.location.longitude;
+        if (iWorkView == null) return;
+        iWorkView.showLocation(address);
         iWorkView.showDistance(getDistance());
     }
 
 
     @Override
-    public void result(int what, boolean isJSON, String message, Bundle bundle) {
+    public void result(int what, boolean isJSON, String message, final Bundle bundle) {
         try {
+            ArrayList<WorkModel> models = null;
             switch (what) {
                 case WORK_DATA://打卡班次
                     long time = System.currentTimeMillis();
@@ -405,7 +432,6 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
                     break;
                 case WORK_LOG://打卡列表
                     long logTime = System.currentTimeMillis();
-                    ArrayList<WorkModel> models = null;
                     if (bundle != null) models = bundle.getParcelableArrayList("models");
                     if (bundle != null) logTime = bundle.getLong("time");
                     handlerWorkLog(isJSON, message, models, logTime);
@@ -417,8 +443,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
                         getUtil().getCodeByNet("CardLog", new CommonInterfaceUtil.OnResultListener() {
                             @Override
                             public void result(int code, String result) {
-                                signinWork(result);
-
+                                signinWork(bundle, result);
                             }
                         });
                     }
@@ -444,11 +469,11 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
                     isSubmiting = false;
                     if (isJSON && JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
                         if (iWorkView != null)
-                            iWorkView.showToast(R.string.signin_ok, R.color.load_ok);
-                        //TODO
-                        //           loadLog(System.currentTimeMillis());
-                    } else
-                        ViewUtil.ToastMessage(ct, ct.getResources().getString(R.string.signin_error), Style.holoRedLight, 3000);
+                            iWorkView.showToast(R.string.signin_ok, R.color.load_submit);
+                        if (bundle != null) models = bundle.getParcelableArrayList("models");
+                        loadLog(models, System.currentTimeMillis());
+                    } else if (iWorkView != null)
+                        iWorkView.showToast(R.string.signin_error, R.color.load_error);
                     break;
                 default:
                     break;
@@ -462,7 +487,9 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
 
     @Override
     public void error(int what, int statuCode, String message, Bundle bundle) {
-
+        log("what" + what);
+        log("statuCode" + statuCode);
+        log("message" + message);
     }
 
 

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

@@ -5,7 +5,7 @@ package com.xzjmyk.pm.activity.ui.erp.presenter.imp;
  * Created by Bitliker on 2016/12/15.
  */
 public interface HttpImp {
-
+    
     void showLoading();//显示刷新
 
     void dimssLoading();//关闭刷新

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

@@ -0,0 +1,13 @@
+package com.xzjmyk.pm.activity.ui.erp.presenter.imp;
+
+/**
+ * Created by Bitliker on 2016/12/16.
+ */
+
+public interface IChche {
+    /**
+     * 保存状态
+     * @param update
+     */
+    void saveStatus(boolean update);
+}

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

@@ -0,0 +1,16 @@
+package com.xzjmyk.pm.activity.ui.erp.presenter.imp;
+
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
+
+import java.util.List;
+
+/**
+ * Created by Bitliker on 2016/12/16.
+ */
+
+public interface IMissionViewPresenter extends HttpImp {
+
+    void showModel(List<MissionModel> models);
+
+
+}

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

@@ -0,0 +1,15 @@
+package com.xzjmyk.pm.activity.ui.erp.presenter.imp;
+
+/**
+ * 班次接口,没有View层
+ * Created by Bitliker on 2016/12/16.
+ */
+
+public interface IWork {
+
+    /**
+     * 保存状态
+     * @param update
+     */
+    void saveStatus(boolean update);
+}

+ 7 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/IWorkPresenter.java

@@ -1,6 +1,9 @@
 package com.xzjmyk.pm.activity.ui.erp.presenter.imp;
 
 import com.baidu.mapapi.search.core.PoiInfo;
+import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
+
+import java.util.ArrayList;
 
 /**
  * Created by Bitliker on 2016/12/15.
@@ -8,8 +11,8 @@ import com.baidu.mapapi.search.core.PoiInfo;
 
 public interface IWorkPresenter {
 
-    void start();
-
+    void startForSave();
+    void startForUi();
     /**
      * 获取班次
      *
@@ -17,9 +20,9 @@ public interface IWorkPresenter {
      */
     void loadWorkData(long time);
 
-    void submit(String macAddress);
+    void submit(ArrayList<WorkModel> models, String macAddress);
 
-    void submitWork(String macAddress);
+    void submitWork(ArrayList<WorkModel> models, String macAddress);
 
     void changPoi(PoiInfo poi);
 

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

@@ -23,7 +23,7 @@ import com.xzjmyk.pm.activity.ui.erp.activity.oa.MissionPlanActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutSigninOKActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SigninActivity;
 import com.xzjmyk.pm.activity.ui.erp.entity.ErrorEntity;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.entity.SigningBean;
 import com.xzjmyk.pm.activity.ui.erp.util.auto.AlarmService;
 import com.xzjmyk.pm.activity.ui.erp.util.auto.NotificationManage;
@@ -54,13 +54,13 @@ public class SigninUtil {
     private NotificationManage notificationManage;
     private Context ct;
     private String baseUrl;
-    private MissionPlanEntity mission;
+    private MissionModel mission;
 
     public SigninUtil() {
         init();
     }
 
-    public SigninUtil(MissionPlanEntity mission) {
+    public SigninUtil(MissionModel mission) {
         this.mission = mission;
         notificationManage = new NotificationManage();
         init();
@@ -173,7 +173,7 @@ public class SigninUtil {
     }
 
     //外勤签到
-    public void signinMission(MissionPlanEntity mission) {
+    public void signinMission(MissionModel mission) {
         this.mission = mission;
         if (mission == null) return;
         Context ct = MyApplication.getInstance();
@@ -332,7 +332,7 @@ public class SigninUtil {
         return notificationManage;
     }
 
-    private void endMission(MissionPlanEntity mission) throws Exception {
+    private void endMission(MissionModel mission) throws Exception {
         final boolean saveOk = MissionDao.getInstance().updata(mission);
         boolean isMore = PreferenceUtils.getBoolean(AppConfig.HAVE_OUT_PLAN, false);
         if (!isMore) {

+ 16 - 24
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/AutoErpService.java

@@ -15,8 +15,11 @@ import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
+import com.xzjmyk.pm.activity.ui.erp.presenter.WorkPresenter;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWork;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWorkPresenter;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonInterfaceUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -31,7 +34,7 @@ import static com.xzjmyk.pm.activity.util.PreferenceUtils.getBoolean;
 /**
  * 自动Erp服务,开启线程
  */
-public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListener {
+public class AutoErpService extends Service  {
     public static final int STATUS_SIGNING = 0x11;//自动打卡
     public static final int STATUS_WORK_ALARM = 0x12;//上班提醒
     public static final int STATUS_OFF_ALARM = 0x13;//下班提醒
@@ -39,7 +42,6 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
     public static final int STATUS_LEAVE_ALARM = 0x15;//离开提醒
 
 
-    private CacheAutoUtil cacheAutoUtil;//工具类
     private ReckonAutoUtil reckonAutoUtil;
     private boolean isAlarm;//是否打卡提醒
     private boolean isAuto;//是否自动打卡
@@ -103,13 +105,20 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
     }
 
     /**
-     * 初始化数据库
+     * 初始化数据库,1.清空昨天数据  2.缓存当天数据
      */
     private void initDB() {
         //  刚进来时候清空昨天数据
         try {
             WorkModelDao.getInstance().clearAll(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
             MissionDao.getInstance().clearAll(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
+            IWorkPresenter presenter = new WorkPresenter(new IWork() {
+                @Override
+                public void saveStatus(boolean update) {
+                    Log.i("gongpengming", "进来了=" + update);
+                }
+            });
+            presenter.startForSave();
         } catch (Exception e) {
             if (e != null)
                 log("initDB Exception=" + e.getMessage());
@@ -122,7 +131,6 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
     private void init() {
         initWork();
         initMission();
-//        getCacheUtil().loadhasMission();//判断是否还有外勤计划
     }
 
     private void initMission() {
@@ -132,7 +140,6 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
             public void result(int code, String result) {
                 boolean isNeedAutoOut = getBoolean(AppConfig.AUTO_MISSION, false);
                 if (isNeedAutoOut) {
-                    getCacheUtil().loadMissionPlan();//缓存外勤计划列表
                 } else {
                     try {
                         //如果不是自动外勤,清空数据库今天的数据
@@ -153,8 +160,7 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
         //是否提醒
         isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.AUTO_SIGNIN, true);
         if (isAlarm || isAuto) {
-            getCacheUtil().validatorMac();//缓存是否是本人mac地址
-            getCacheUtil().loadWorkData();//缓存打卡班次列表
+            //TODO 下拉班次数据和是否本机账号
         } else {
             try {
                 //如果不是自动打卡和提醒,清空数据库今天的数据
@@ -167,14 +173,6 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
     }
 
 
-    @Override
-    public void loadOk(boolean saveOk, int flag) {
-    }
-
-    @Override
-    public void loadError(int flag, String message) {
-
-    }
 
 
     //开启异步任务
@@ -185,14 +183,14 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
                 while (true) {
                     Map<String, Object> map = null;
                     if (isCanMission()) {
-                        List<MissionPlanEntity> plans = MissionDao.getInstance().queryByEnCode();
+                        List<MissionModel> plans = MissionDao.getInstance().queryByEnCode();
                         if (iter % 6 == 0 && !ListUtils.isEmpty(plans)) {
                             log("自动外勤");
                             //符合外勤判断
                             //判断是否自动外勤
                             boolean isAuto = getBoolean(AppConfig.AUTO_MISSION, false);
                             if (isAuto) {
-                                MissionPlanEntity mission = getReckonAutoUtil().reckonMission(plans);
+                                MissionModel mission = getReckonAutoUtil().reckonMission(plans);
                                 if (mission != null) {
                                     map.clear();
                                     map.put("type", STATUS_MISSION);
@@ -201,7 +199,6 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
                                 }
                             }
                         }
-
                     }
                     if (isCanWork()) {
                         if (isAuto) {
@@ -253,11 +250,6 @@ public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListe
         return reckonAutoUtil;
     }
 
-    private CacheAutoUtil getCacheUtil() {
-        if (cacheAutoUtil == null) cacheAutoUtil = new CacheAutoUtil(this);
-        return cacheAutoUtil;
-    }
-
     private boolean isCanMission() {
         return true;
     }

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

@@ -11,7 +11,7 @@ import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -317,11 +317,11 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
             return; //获取到拜访计划数据
         }
         JSONObject object = null;
-        MissionPlanEntity entity = null;
-        List<MissionPlanEntity> entities = new ArrayList<>();
+        MissionModel entity = null;
+        List<MissionModel> entities = new ArrayList<>();
         for (int i = 0; i < array.size(); i++) {
             object = array.getJSONObject(i);
-            entity = new MissionPlanEntity();
+            entity = new MissionModel();
             entity.setId(object.getInteger("MPD_ID"));
             entity.setCompanyName(object.getString("MPD_COMPANY"));
             entity.setCompanyAddr(object.getString("MPD_ADDRESS"));

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

@@ -5,7 +5,7 @@ import android.util.Log;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -31,14 +31,14 @@ public class ReckonAutoUtil {
      * @return
      * @throws ClassCastException
      */
-    public MissionPlanEntity reckonMission(List<MissionPlanEntity> list) throws Exception {
+    public MissionModel reckonMission(List<MissionModel> list) throws Exception {
         int companyDistance = PreferenceUtils.getInt(AppConfig.ALARM_MISSION_DISTANCE, 500);
-        MissionPlanEntity minBean = null;
+        MissionModel minBean = null;
         float minDistance = 0;
         if (ListUtils.isEmpty(list)) {
             return minBean;
         }
-        for (MissionPlanEntity e : list) {
+        for (MissionModel e : list) {
             if (e.getLatLng() == null) continue;//定位不存在
             //获取当前与目的地的距离
             if (e.getStatus() == 2) continue;

+ 6 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/auto/AlarmManage.java

@@ -7,7 +7,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.db.dao.ErrorMagDao;
 import com.xzjmyk.pm.activity.db.dao.SigningDao;
 import com.xzjmyk.pm.activity.ui.erp.entity.ErrorEntity;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.entity.SigningBean;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -33,14 +33,14 @@ public class AlarmManage {
      * @return
      * @throws ClassCastException
      */
-    public MissionPlanEntity reckonMission(List<MissionPlanEntity> list) throws ClassCastException {
+    public MissionModel reckonMission(List<MissionModel> list) throws ClassCastException {
         int companyDistance = PreferenceUtils.getInt(AppConfig.ALARM_MISSION_DISTANCE, 500);
-        MissionPlanEntity minBean = null;
+        MissionModel minBean = null;
         float minDistance = 0;
         if (ListUtils.isEmpty(list)) {
             return minBean;
         }
-        for (MissionPlanEntity e : list) {
+        for (MissionModel e : list) {
             if (e.getLatLng() == null) continue;//定位不存在
             //获取当前与目的地的距离
             if (e.getStatus() == 2) continue;
@@ -64,12 +64,12 @@ public class AlarmManage {
     }
 
     //自动外勤提醒
-    public MissionPlanEntity alarmMission(List<MissionPlanEntity> list) throws ClassCastException {
+    public MissionModel alarmMission(List<MissionModel> list) throws ClassCastException {
         //获取当天外勤计划
         if (ListUtils.isEmpty(list)) {
             return null;
         }
-        for (MissionPlanEntity e : list) {
+        for (MissionModel e : list) {
             if (!StringUtils.isEmpty(e.getVisitTime()) &&
                     //当前时间大于计划时间
                     System.currentTimeMillis() > TimeUtils.f_str_2_long(e.getVisitTime())

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

@@ -16,7 +16,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SigninActivity;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonInterfaceUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.SigninUtil;
@@ -187,14 +187,14 @@ public class AlarmService extends Service {
                 while (true) {
                     //外勤
                     if (isCanMission()) {
-                        List<MissionPlanEntity> plans = MissionDao.getInstance().queryByEnCode();
+                        List<MissionModel> plans = MissionDao.getInstance().queryByEnCode();
                         if (iter % 3 == 0 && !ListUtils.isEmpty(plans)) {
                             show("自动外勤");
                             //符合外勤判断
                             //判断是否自动外勤
                             boolean isAuto = getBoolean(AppConfig.AUTO_MISSION, false);
                             if (isAuto) {
-                                MissionPlanEntity mission = getAlarmManage().reckonMission(plans);
+                                MissionModel mission = getAlarmManage().reckonMission(plans);
                                 if (mission != null) {
                                     map.clear();
                                     map.put("type", STATUS_MISSION);
@@ -244,7 +244,7 @@ public class AlarmService extends Service {
                         getNotificationManage().sendNotification(MyApplication.getInstance(), "下班时间已到了,请及时打卡", SigninActivity.class);
                         break;
                     case STATUS_MISSION://自动外勤
-                        MissionPlanEntity bean = (MissionPlanEntity) map.get("data");
+                        MissionModel bean = (MissionModel) map.get("data");
                         util = new SigninUtil();
                         if (bean.getStatus() == 2)//更新判断是否还有外勤
                             getPresenter().loadIsMission();

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

@@ -16,7 +16,7 @@ import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.commoninterface.SigningInterface;
 import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.db.dao.SigningDao;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.entity.SigningBean;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
@@ -309,11 +309,11 @@ public class SigningPresenter {
             return; //获取到拜访计划数据
         }
         JSONObject object = null;
-        MissionPlanEntity entity = null;
-        List<MissionPlanEntity> entities = new ArrayList<>();
+        MissionModel entity = null;
+        List<MissionModel> entities = new ArrayList<>();
         for (int i = 0; i < array.size(); i++) {
             object = array.getJSONObject(i);
-            entity = new MissionPlanEntity();
+            entity = new MissionModel();
             entity.setId(object.getInteger("MPD_ID"));
             entity.setCompanyName(object.getString("MPD_COMPANY"));
             entity.setCompanyAddr(object.getString("MPD_ADDRESS"));

+ 17 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/crouton/Crouton.java

@@ -41,6 +41,8 @@ import android.widget.TextView;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 
+import static android.R.attr.id;
+
 /*
  * Based on an article by Cyril Mottier (http://android.cyrilmottier.com/?p=773) <br>
  */
@@ -186,6 +188,19 @@ public final class Crouton {
         makeText((Activity) ct, id, ct.getResources().getColor(R.color.light_green), time).show();
     }
 
+    public static void showToast(Context ct, int id, int color) {
+        if (ct instanceof Activity)
+            makeText((Activity) ct, id, ct.getResources().getColor(color), 1000).show();
+
+
+
+    }
+
+    public static void showToast(Context ct, String message, int color) {
+        if (ct instanceof Activity)
+            makeText((Activity) ct, message, ct.getResources().getColor(color), 1000).show();
+    }
+
     public static void makeText(Context ct, String message) {
         try {
             makeText((Activity) ct, message, ct.getResources().getColor(R.color.light_green), 1000).show();
@@ -195,7 +210,8 @@ public final class Crouton {
     }
 
     public static void makeText(Context ct, String message, int time) {
-        makeText((Activity) ct, message, ct.getResources().getColor(R.color.light_green), time).show();
+        makeText((Activity) ct, message,
+                ct.getResources().getColor(R.color.light_green), time).show();
     }
 
     /**

+ 1 - 7
WeiChat/src/main/res/layout/fragment_me.xml

@@ -494,13 +494,7 @@
             style="@style/IMTbleLine_UP_Me"
             android:layout_marginTop="7dp"
             android:background="@drawable/selector_me_menu_item_bg"
-            android:visibility="gone">
-            android:visibility="gone"
-            android:background="@drawable/selector_me_menu_item_bg">
-            android:visibility="gone"
-            android:background="@drawable/selector_me_menu_item_bg"
-       >
-
+            >
             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"