Browse Source

动态表单设置

Arison 9 years ago
parent
commit
5445f744f4
49 changed files with 992 additions and 314 deletions
  1. 1 1
      WeiChat/build.gradle
  2. 10 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/PublicMessageAdapter.java
  3. 90 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MissionDao.java
  4. 47 21
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java
  5. 11 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java
  6. 32 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/SendShuoshuoActivity.java
  7. 26 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/SendVideoActivity.java
  8. 128 81
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonDocDetailsActivity.java
  9. 20 20
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/form/DataFormDetailActivity.java
  10. 10 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/DailydetailsActivity.java
  11. 8 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/LocationMapActivity.java
  12. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/TestActivity.java
  13. 6 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkDailyAddActivity.java
  14. 2 40
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  15. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/SigninUtil.java
  16. 166 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/AutoErpService.java
  17. 117 50
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/CacheAutoUtil.java
  18. 192 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/ReckonAutoUtil.java
  19. BIN
      WeiChat/src/main/res/drawable-hdpi/add_picture.png
  20. BIN
      WeiChat/src/main/res/drawable-hdpi/icon_camera_nor.png
  21. BIN
      WeiChat/src/main/res/drawable-hdpi/icon_shipin_nor.png
  22. BIN
      WeiChat/src/main/res/drawable-hdpi/icon_zhankai_nor.png
  23. BIN
      WeiChat/src/main/res/drawable-hdpi/qzone_camera.png
  24. BIN
      WeiChat/src/main/res/drawable-xhdpi/add_picture.png
  25. BIN
      WeiChat/src/main/res/drawable-xhdpi/icon_camera_nor.png
  26. BIN
      WeiChat/src/main/res/drawable-xhdpi/icon_shipin_nor.png
  27. BIN
      WeiChat/src/main/res/drawable-xhdpi/icon_zhankai_nor.png
  28. BIN
      WeiChat/src/main/res/drawable-xhdpi/qzone_camera.png
  29. BIN
      WeiChat/src/main/res/drawable-xxhdpi/add_picture.png
  30. BIN
      WeiChat/src/main/res/drawable-xxhdpi/icon_camera_nor.png
  31. BIN
      WeiChat/src/main/res/drawable-xxhdpi/icon_dingwei1_nor.png
  32. BIN
      WeiChat/src/main/res/drawable-xxhdpi/icon_shipin_nor.png
  33. BIN
      WeiChat/src/main/res/drawable-xxhdpi/icon_zhankai_nor.png
  34. BIN
      WeiChat/src/main/res/drawable-xxhdpi/qzone_camera.png
  35. 8 0
      WeiChat/src/main/res/drawable/shape_qzone_head_bg.xml
  36. 4 2
      WeiChat/src/main/res/layout/activity_common_docui.xml
  37. 2 2
      WeiChat/src/main/res/layout/activity_map_location.xml
  38. 22 30
      WeiChat/src/main/res/layout/activity_send_shuoshuo.xml
  39. 11 5
      WeiChat/src/main/res/layout/activity_send_videohi.xml
  40. 2 1
      WeiChat/src/main/res/layout/header_view_p_msg_detail.xml
  41. 3 1
      WeiChat/src/main/res/layout/item_location_ls.xml
  42. 13 10
      WeiChat/src/main/res/layout/layout_circle_add_more_item.xml
  43. 36 0
      WeiChat/src/main/res/layout/layout_circle_add_video_item.xml
  44. 1 1
      WeiChat/src/main/res/layout/layout_menu_send_qzone_message.xml
  45. 3 2
      WeiChat/src/main/res/layout/p_msg_item_main_body.xml
  46. 4 1
      WeiChat/src/main/res/layout/space_cover_view.xml
  47. 1 1
      WeiChat/src/main/res/menu/menu_business.xml
  48. 12 0
      WeiChat/src/main/res/menu/send_qzone.xml
  49. 2 2
      WeiChat/src/main/res/values/strings.xml

+ 1 - 1
WeiChat/build.gradle

@@ -13,7 +13,7 @@ android {
     }
     signingConfigs {
         config {
-            storeFile file('C:/Users/Arison/Desktop/applicationsignname[20150409]')
+            storeFile file('C:/Users/FANGlh/Desktop/UUAPP/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

+ 10 - 10
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/PublicMessageAdapter.java

@@ -410,17 +410,17 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
             viewHolder.body_tv.setVisibility(View.VISIBLE);
             if(body.getText().contains("我也去分享")){
                 viewHolder.daily_share_tv.setVisibility(View.VISIBLE);
-                viewHolder.daily_share_tv.setTextColor(mContext.getResources().getColor(R.color.approval));
+//                viewHolder.daily_share_tv.setTextColor(mContext.getResources().getColor(R.color.approval));
                 viewHolder.daily_share_tv.setText("工作心得");
-                viewHolder.daily_share_tv.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        if (finalHolder.body_tv.getText().toString().contains("(我也去分享)")) {
-                            Intent intent = new Intent(mContext, WorkDailyAddActivity.class);
-                            mContext.startActivity(intent);
-                        }
-                    }
-                });
+//                viewHolder.daily_share_tv.setOnClickListener(new View.OnClickListener() {
+//                    @Override
+//                    public void onClick(View v) {
+//                        if (finalHolder.body_tv.getText().toString().contains("(我也去分享)")) {
+//                            Intent intent = new Intent(mContext, WorkDailyAddActivity.class);
+//                            mContext.startActivity(intent);
+//                        }
+//                    }
+//                });
             }else{
                 viewHolder.daily_share_tv.setVisibility(View.GONE);
                 viewHolder.daily_share_tv.setText("外部分享");

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

@@ -38,12 +38,11 @@ public class MissionDao {
     }
 
     public MissionDao() {
-
+        helper = new DBOpenHelper(MyApplication.getInstance());
     }
 
 
     public boolean upStatus(int id, int status) {
-        helper = new DBOpenHelper(MyApplication.getInstance());
         SQLiteDatabase db = null;
         long i = 0;
         try {
@@ -70,7 +69,6 @@ public class MissionDao {
 
     //获取当天全部数据
     public List<MissionPlanEntity> queryByEnCode() {
-        helper = new DBOpenHelper(MyApplication.getInstance());
         SQLiteDatabase db = null;
         Cursor cursor = null;
         List<MissionPlanEntity> missions = null;
@@ -119,7 +117,6 @@ public class MissionDao {
     //更新或是创建一个数据
     public boolean updataOrCreate(MissionPlanEntity mission) {
         if (mission == null) return false;
-        helper = new DBOpenHelper(MyApplication.getInstance());
         if (mission.getStatus() > 0) {//更新
             return updata(mission);
         } else {//创建
@@ -127,11 +124,74 @@ public class MissionDao {
         }
     }
 
+//    public boolean updataOrCreate(List<MissionPlanEntity> entities) {
+//        List<MissionPlanEntity> chche = queryByEnCode();
+//        if (ListUtils.isEmpty(chche)) return insertAll(entities);
+//        else {
+//
+//
+//        }
+//        return insertAll(entities);
+//    }
+
+
     public boolean updataOrCreate(List<MissionPlanEntity> entities) {
-        helper = new DBOpenHelper(MyApplication.getInstance());
-        return insertAll(entities);
+        if (ListUtils.isEmpty(entities)) return false;
+        show("updataOrCreate");
+        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();
+            db.beginTransaction();//开启事务
+            ContentValues values = null;
+            for (MissionPlanEntity mission : entities) {
+                show("MissionPlanEntity");
+                //对象为空或是拜访时间没有情况下不插入数据库
+                if (mission == null || StringUtils.isEmpty(mission.getVisitTime())) {
+                    show("进来的是这打上");
+                    continue;
+                }
+                values = new ContentValues();
+                values.put("id", mission.getId());
+                values.put("master", master);
+                values.put("emcode", emcode);
+                values.put("company", mission.getCompanyName());
+                values.put("companyAddr", mission.getCompanyAddr());
+                if (mission.getLatLng() != null) {
+                    values.put("latitude", mission.getLatLng().latitude);
+                    values.put("longitude", mission.getLatLng().longitude);
+                }
+                values.put("visittime", mission.getVisitTime());
+                values.put("realvisitTime", mission.getRealTime());
+                values.put("realLeaveTime", mission.getRealLeave());
+                values.put("status", 0);
+                values.put("date", getDateByString(mission.getVisitTime()));//拜访日期
+                i = db.insert(tibleName, null, values);
+                if (i == -1) {
+                    String where = "master=? and emcode=? and id=? ";
+                    String[] whereArgs = {master, emcode, String.valueOf(mission.getId())};
+                    i = db.update(tibleName, values, where, whereArgs);
+                    show("update i=" + i);
+                }
+                show("i====" + i);
+            }
+            db.setTransactionSuccessful();
+        } catch (android.database.SQLException e) {
+            show("SQLException=" + e.getMessage());
+        } catch (Exception e) {
+            show("Exception=" + e.getMessage());
+        } finally {
+            db.endTransaction();
+            if (db != null)
+                db.close();
+            return i > 0;
+        }
     }
 
+
     private boolean insertAll(List<MissionPlanEntity> entities) {
         show("insertAll");
         SQLiteDatabase db = null;
@@ -306,4 +366,28 @@ public class MissionDao {
             return clearOk;
         }
     }
+
+
+    public boolean clearAll(long date) {
+        SQLiteDatabase db = null;
+        boolean clearOk = false;
+        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();
+            String where = "master=? and emcode=? and date=?";
+            String[] whereArg = {master, emcode, TimeUtils.s_long_2_str(date)};
+            int i = db.delete(tibleName, where, whereArg);
+            clearOk = i > 0;
+        } 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;
+        }
+    }
 }

+ 47 - 21
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java

@@ -42,9 +42,9 @@ public class WorkModelDao {
      *
      * @param models
      */
-    public void createOrUpdata(List<WorkModel> models, long logTime) {
-        List<WorkModel> chche = query(true, TimeUtils.s_long_2_str(System.currentTimeMillis()));
-        if (ListUtils.isEmpty(chche)) insert(models, logTime);
+    public void createOrUpdata(List<WorkModel> models) {
+        List<WorkModel> chche = query(true);
+        if (ListUtils.isEmpty(chche)) insert(models);
         else {
             List<WorkModel> update = new ArrayList<>();
             List<WorkModel> delete = new ArrayList<>();
@@ -79,9 +79,9 @@ public class WorkModelDao {
                     }
                 }
             }
-            delete(delete,logTime);
-            insert(models, logTime);
-            update(update,logTime);
+            delete(delete);
+            insert(models);
+            update(update);
         }
 
     }
@@ -91,15 +91,15 @@ public class WorkModelDao {
      * 获取数据库中全部数据
      *
      * @param allSignin 是否包含迟到和早退情况
-     * @param date      日期  yyyy-MM-dd
      * @return
      */
-    public List<WorkModel> query(boolean allSignin, String date) {
+    public List<WorkModel> query(boolean allSignin) {
         List<WorkModel> models = new ArrayList<>();
         DBOpenHelper helper = null;
         SQLiteDatabase db = null;
         Cursor c = null;
         try {
+            String date = TimeUtils.s_long_2_str(System.currentTimeMillis());
             String emCode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return null;
@@ -133,7 +133,7 @@ public class WorkModelDao {
                         offSignin = "";
                 }
                 model = new WorkModel(workStart, workTime, workend, workSignin, offStart,
-                        offTime, offend, offSignin, leaveAlarm, workAlarm, offAlarm,date);
+                        offTime, offend, offSignin, leaveAlarm, workAlarm, offAlarm, date);
                 models.add(model);
             }
         } catch (Exception e) {
@@ -149,7 +149,13 @@ public class WorkModelDao {
     }
 
 
-    private long insert(List<WorkModel> models, long logTime) {
+    /**
+     * 插入数据
+     *
+     * @param models 数据列表
+     * @return
+     */
+    private long insert(List<WorkModel> models) {
         if (ListUtils.isEmpty(models)) return 0;
         DBOpenHelper helper = null;
         SQLiteDatabase db = null;
@@ -157,7 +163,7 @@ public class WorkModelDao {
         try {
             String emCode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
             String master = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
-            String date = TimeUtils.s_long_2_str(logTime);
+            String date = TimeUtils.s_long_2_str(System.currentTimeMillis());
             if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(master)) return 0;
             helper = new DBOpenHelper(MyApplication.getInstance());
             db = helper.getWritableDatabase();
@@ -204,7 +210,13 @@ public class WorkModelDao {
     }
 
 
-    private long delete(List<WorkModel> models, long logTime) {
+    /**
+     * 删除数据
+     *
+     * @param models 对应数据列表
+     * @return
+     */
+    private long delete(List<WorkModel> models) {
         DBOpenHelper helper = null;
         SQLiteDatabase db = null;
         long i = 0;
@@ -221,9 +233,9 @@ public class WorkModelDao {
                         StringUtils.isEmpty(e.getOffStart()) || StringUtils.isEmpty(e.getOffTime()) || StringUtils.isEmpty(e.getOffend()))
                     continue;
                 String where = "emCode=? and master=?  and workStart=? and workTime=?" +
-                        " and workend=? and offStart=? and offTime=? and offend=? and date=?";
+                        " and workend=? and offStart=? and offTime=? and offend=? ";
                 String[] whereArg = {"emCode", "master", e.getWorkStart(), e.getWorkTime(), e.getWorkend()
-                        , e.getOffStart(), e.getOffTime(), e.getOffend(),TimeUtils.s_long_2_str(logTime)};
+                        , e.getOffStart(), e.getOffTime(), e.getOffend()};
                 i = db.delete(TIBLE_NAME, where, whereArg);
             }
             db.setTransactionSuccessful();
@@ -237,7 +249,9 @@ public class WorkModelDao {
         }
     }
 
-    private long deleteAll(String date) {
+    public long clearAll(long date) {
+        if (date <= 0) return -1;
+        Log.i("gongpengming", "date=" + TimeUtils.s_long_2_str(date));
         DBOpenHelper helper = null;
         SQLiteDatabase db = null;
         long i = 0;
@@ -248,7 +262,7 @@ public class WorkModelDao {
             helper = new DBOpenHelper(MyApplication.getInstance());
             db = helper.getWritableDatabase();
             String where = "emCode=? and master=?  and date=?";
-            String[] whereArg = {"emCode", "master", date};
+            String[] whereArg = {"emCode", "master", TimeUtils.s_long_2_str(date)};
             i = db.delete(TIBLE_NAME, where, whereArg);
         } catch (Exception e) {
 
@@ -259,7 +273,13 @@ public class WorkModelDao {
         }
     }
 
-    private long update(List<WorkModel> models,long logTime) {
+    /**
+     * 更新数据   事务
+     *
+     * @param models 更新数据列表
+     * @return
+     */
+    private long update(List<WorkModel> models) {
         if (ListUtils.isEmpty(models)) return 0;
         DBOpenHelper helper = null;
         SQLiteDatabase db = null;
@@ -290,9 +310,9 @@ public class WorkModelDao {
                 else values.put("offSignin", e.getOffSignin());
 
                 String where = "emCode=? and master=?  and workStart=? and workTime=?" +
-                        " and workend=? and offStart=? and offTime=? and offend=? and date=?";
+                        " and workend=? and offStart=? and offTime=? and offend=? ";
                 String[] whereArg = {emCode, master, e.getWorkStart(), e.getWorkTime(), e.getWorkend()
-                        , e.getOffStart(), e.getOffTime(), e.getOffend(),TimeUtils.s_long_2_str(logTime)};
+                        , e.getOffStart(), e.getOffTime(), e.getOffend()};
                 i = db.update(TIBLE_NAME, values, where, whereArg);
             }
             db.setTransactionSuccessful();
@@ -307,7 +327,13 @@ public class WorkModelDao {
         }
     }
 
-    public long update(WorkModel models, long logtime) {
+    /**
+     * 更新一行数据   签到后使用
+     *
+     * @param models
+     * @return
+     */
+    public long update(WorkModel models) {
         if (models == null) return 0;
         DBOpenHelper helper = null;
         SQLiteDatabase db = null;
@@ -338,7 +364,7 @@ public class WorkModelDao {
                     " and workend=? and offStart=? and offTime=? and offend=? and date=?";
 
             String[] whereArg = {"emCode", "master", models.getWorkStart(), models.getWorkTime(), models.getWorkend()
-                    , models.getOffStart(), models.getOffTime(), models.getOffend(), TimeUtils.s_long_2_str(logtime)};
+                    , models.getOffStart(), models.getOffTime(), models.getOffend(), TimeUtils.s_long_2_str(System.currentTimeMillis())};
             i = db.update(TIBLE_NAME, values, where, whereArg);
         } catch (Exception e) {
         } finally {

+ 11 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java

@@ -162,6 +162,14 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         initView();
     }
 
+    @Override
+    protected void onResume() {
+        requestData(true);
+        super.onResume();
+    }
+
+
+
     /**
      * 是否是商务圈类型
      *
@@ -285,7 +293,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
             }
         });
 
-       /* mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
+        mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 mClickPosition = (int) parent.getItemIdAtPosition(position);
@@ -294,7 +302,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                 intent.putExtra("public_message", message);
                 startActivityForResult(intent,REQUEST_CODE_GET_SHUOSHUODETAIL_BACK);
             }
-        });*/
+        });
 
         mPullToRefreshListView.getRefreshableView().setOnScrollListener(
                 new PauseOnScrollListener(ImageLoader.getInstance(), true, true, new AbsListView.OnScrollListener() {
@@ -343,6 +351,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         return super.onCreateOptionsMenu(menu);
     }
 
+
     private static final int REQUEST_CODE_SEND_MSG = 1;
 
     @Override
@@ -588,11 +597,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
         }, PublicMessage.class);
     }
 
-    @Override
-    protected void onResume() {
 
-        super.onResume();
-    }
 
     @Override
     protected void onStop() {

+ 32 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/SendShuoshuoActivity.java

@@ -1,3 +1,4 @@
+
 package com.xzjmyk.pm.activity.ui.circle;
 
 import android.annotation.TargetApi;
@@ -13,6 +14,8 @@ import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
@@ -34,9 +37,11 @@ import com.xzjmyk.pm.activity.bean.Area;
 import com.xzjmyk.pm.activity.bean.UploadFileResult;
 import com.xzjmyk.pm.activity.helper.LoginHelper;
 import com.xzjmyk.pm.activity.helper.UploadService;
+import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.account.LoginActivity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationMapActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.WorkDailyShowActivity;
 import com.xzjmyk.pm.activity.ui.tool.MultiImagePreviewActivity;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.CameraUtil;
@@ -64,7 +69,6 @@ public class SendShuoshuoActivity extends BaseActivity implements View.OnClickLi
     private Uri mNewPhotoUri;// 拍照和图库 获得图片的URI
 
     private EditText mTextEdit;
-    private TextView mSelectImagePromptTv;
     private View mSelectImgLayout;
     private MyGridView mGridView;
     private ArrayList<String> mPhotoList;
@@ -117,7 +121,6 @@ public class SendShuoshuoActivity extends BaseActivity implements View.OnClickLi
 //        }
 
         mTextEdit = (EditText) findViewById(R.id.text_edit);
-        mSelectImagePromptTv = (TextView) findViewById(R.id.select_img_prompt_tv);
         mSelectImgLayout = findViewById(R.id.select_img_layout);
         mGridView = (MyGridView) findViewById(R.id.grid_view);
 
@@ -132,7 +135,6 @@ public class SendShuoshuoActivity extends BaseActivity implements View.OnClickLi
             mTextEdit.setText(dailyexperience);
         }
         if (mType == 0) {
-            mSelectImagePromptTv.setVisibility(View.GONE);
             mSelectImgLayout.setVisibility(View.GONE);
         }
 
@@ -154,6 +156,32 @@ public class SendShuoshuoActivity extends BaseActivity implements View.OnClickLi
 
 
     }
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.send_qzone, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.send_qzone){
+            if (mPhotoList.size() <= 0 && TextUtils.isEmpty(mTextEdit.getText().toString())) {// 没有照片,也没有说说,直接返回
+                ToastMessage("您未输入任何内容");
+            }else if (mPhotoList.size() <= 0 && !TextUtils.isEmpty(mTextEdit.getText().toString())) {// 发文字
+                sendShuoshuo();
+                finish();
+            } else {//  图片+文字
+                if (Build.VERSION.SDK_INT >= 11)
+                    new UploadPhpto().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+                else
+                    new UploadPhpto().execute();
+                finish();
+            }
+
+        }else {
+            return super.onOptionsItemSelected(item);
+        }return false;
+    }
 
     private void showPictureActionDialog(final int position) {
         String[] items = new String[]{getString(R.string.look_over), getString(R.string.delete)};
@@ -369,12 +397,12 @@ public class SendShuoshuoActivity extends BaseActivity implements View.OnClickLi
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.location_rl:
-//                ToastMessage("该功能还未完善");
                 String name = MyApplication.getInstance().getBdLocationHelper().getName();
                 String address = MyApplication.getInstance().getBdLocationHelper().getAddress();
                 baseAddr = StringUtils.isEmail(name) ? address : name;
                 Intent i = new Intent(activity, LocationMapActivity.class);
                 i.putExtra("qzoneaddr", baseAddr == null ? "" : baseAddr);
+                i.putExtra("qzone_select_add","qzone_select_add");
 //                Log.i("baseAddr",baseAddr) ;
                 startActivityForResult(i, 0x21);
                 break;

+ 26 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/SendVideoActivity.java

@@ -10,6 +10,8 @@ import android.os.Bundle;
 import android.provider.MediaStore.Video.Thumbnails;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
@@ -77,7 +79,6 @@ public class SendVideoActivity extends BaseActivity {
         mProgressDialog = ProgressDialogUtil.init(this, null, getString(R.string.please_wait));
         initView();
     }
-
     private void initView() {
         getSupportActionBar().setTitle(R.string.send_video);
         // find view
@@ -97,7 +98,7 @@ public class SendVideoActivity extends BaseActivity {
 //        }
 
         // init status
-        mIconImageView.setBackgroundResource(R.drawable.add_video);
+        mIconImageView.setBackgroundResource(R.drawable.icon_shipin_nor);
         mVideoTextTv.setText(R.string.circle_add_video);
 
         // set event
@@ -134,6 +135,7 @@ public class SendVideoActivity extends BaseActivity {
                 baseAddr = StringUtils.isEmail(name) ? address : name;
                 Intent i = new Intent(activity, LocationMapActivity.class);
                 i.putExtra("qzoneaddr", baseAddr == null ? "" : baseAddr);
+                i.putExtra("qzone_select_add","qzone_select_add");
 //                Log.i("baseAddr",baseAddr) ;
                 startActivityForResult(i, 0x21);
             }
@@ -141,6 +143,28 @@ public class SendVideoActivity extends BaseActivity {
 
     }
 
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.send_qzone, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.send_qzone){
+            if (TextUtils.isEmpty(mVideoFilePath) || mTimeLen <= 0) {
+                ToastMessage("您未添加任何视频文件");
+            }else if (Build.VERSION.SDK_INT >= 11) {
+                new UploadTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+                finish();
+            } else {
+                new UploadTask().execute();
+                finish();
+            }
+        }else {
+            return super.onOptionsItemSelected(item);
+        }return  false;
+    }
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == 1 && resultCode == RESULT_OK && data != null) {// 选择视频的返回

+ 128 - 81
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonDocDetailsActivity.java

@@ -29,6 +29,8 @@ import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.form.DataFormDetailActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.form.FormListSelectActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.WorkDailyAddActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.WorkDailyShowActivity;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
@@ -37,7 +39,9 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ObjectUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.ui.erp.view.CustomerScrollView;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.view.MyListView;
 
@@ -58,6 +62,7 @@ import java.util.Map;
  */
 public class CommonDocDetailsActivity extends BaseActivity {
 
+    private static final int COM_DOC_RESUB_SUCCESSFUL = 1213;
     private ImageView photo_im;
     private TextView name_tv;
     private TextView section_tv;
@@ -92,17 +97,24 @@ public class CommonDocDetailsActivity extends BaseActivity {
     private LinearLayout resanddel_ll;
     private LinearLayout resubmit_ll;
     private LinearLayout delete_ll;
+    private CustomerScrollView commondoc_sv;
 
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         initView();
+    }
+
+    @Override
+    protected void onResume() {
         initDate();
+        super.onResume();
     }
 
     public void initView() {
         setContentView(R.layout.activity_common_docui);
+        commondoc_sv = (CustomerScrollView) findViewById(R.id.common_docui_sv);
         photo_im = (ImageView) findViewById(R.id.common_docui_photo_img);
         name_tv = (TextView) findViewById(R.id.common_docui_name_tv);
         section_tv = (TextView) findViewById(R.id.common_docui_Section_tv);
@@ -231,8 +243,23 @@ public class CommonDocDetailsActivity extends BaseActivity {
                     Toast.makeText(getApplicationContext(), "单据删除成功", Toast.LENGTH_LONG).show();
                     finish();
                     break;
+                case COM_DOC_RESUB_SUCCESSFUL:
+                    if (msg.getData() != null){
+                        if (!StringUtils.isEmpty(msg.getData().getString("result"))){
+                            String result = msg.getData().getString("result");
+                            LogUtil.prinlnLongMsg("RESUBMITTED_message", result);
+                            Toast.makeText(ct, "单据反提交成功", Toast.LENGTH_LONG).show();
+                            startActivity(new Intent(CommonDocDetailsActivity.this, DataFormDetailActivity.class)
+                                    .putExtra("caller", mCaller)
+                                    .putExtra("id", mkeyValue)
+                                    .putExtra("submittype", "resubmit"));
+                        }
+                    }
+                    break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     Toast.makeText(CommonDocDetailsActivity.this, msg.getData().getString("result"), Toast.LENGTH_LONG).show();
+                    commondoc_sv.setVisibility(View.GONE);
+                    resanddel_ll.setVisibility(View.GONE);
                     break;
             }
         }
@@ -260,6 +287,8 @@ public class CommonDocDetailsActivity extends BaseActivity {
      * @param msg_result
      */
     public void AMshow(String msg_result){
+        mFormconfigsBean.clear();
+        mGridconfigsBean.clear();
         try{
             JSONObject amresultJsonObject = new JSONObject(msg_result);
             JSONObject dataObjecty = amresultJsonObject.optJSONObject("datas");
@@ -273,6 +302,8 @@ public class CommonDocDetailsActivity extends BaseActivity {
             if (formdataArray == null){
                 mEmptyLayput_applymsg.showEmpty();
             }else {
+                commondoc_sv.setVisibility(View.VISIBLE);
+                resanddel_ll.setVisibility(View.VISIBLE);
                 mCommonDocMainMsgAdapter.setFormdataBeans(formdataArray);
                 if (griddataArray == null){
                     secondmsg_ll.setVisibility(View.GONE);
@@ -342,7 +373,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
                 LogUtil.prinlnLongMsg("mCommonApprovalFlowBean", mCommonApprovalFlowBean.toString());
                 if(mCommonApprovalFlowBean.getData().size()<=0 ){
                     mEmptyLayput_approvalflow.showEmpty();
-                    ToastMessage("单据审批流数据获取异常");
+//                    ToastMessage("单据审批流数据获取异常");
                 }else {
                     // 从im获取头像
                     for (int i = 0; i < mCommonApprovalFlowBean.getData().size(); i++) {
@@ -397,68 +428,68 @@ public class CommonDocDetailsActivity extends BaseActivity {
      */
     public void ShowApplyPeoMsg() {
         //  当单据是提交状态 触发审批流时获取
-        if ( !ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())) {
-            String em_number = mCommonApprovalFlowBean.getProcesss().get(0).getJp_launcherId();   //申请人编号 从process获取
-            name_tv.setText(mCommonApprovalFlowBean.getProcesss().get(0).getJp_launcherName());  //申请人姓名 从process获取
-            if (!ListUtils.isEmpty(mCommonApprovalFlowBean.getNodes())){
-                int data_num = mCommonApprovalFlowBean.getData().size();
-                int nodes_num = mCommonApprovalFlowBean.getNodes().size();
-                String app_status = mCommonApprovalFlowBean.getNodes().get(nodes_num - 1).getJn_dealResult();
-                if ((nodes_num == data_num && nodes_num > 0) &&
-                        mCommonApprovalFlowBean.getNodes().get(data_num - 1).getJn_dealResult() != null &&
-                        mCommonApprovalFlowBean.getNodes().get(data_num - 1).getJn_dealResult().equals("同意")) {
-                    status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.approval));
-                    status_tv.setText("已审批");
-                }else {
+            if ( !ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())) {
+                String em_number = mCommonApprovalFlowBean.getProcesss().get(0).getJp_launcherId();   //申请人编号 从process获取
+                name_tv.setText(mCommonApprovalFlowBean.getProcesss().get(0).getJp_launcherName());  //申请人姓名 从process获取
+                if (!ListUtils.isEmpty(mCommonApprovalFlowBean.getNodes())){
+                    int data_num = mCommonApprovalFlowBean.getData().size();
+                    int nodes_num = mCommonApprovalFlowBean.getNodes().size();
+                    String app_status = mCommonApprovalFlowBean.getNodes().get(nodes_num - 1).getJn_dealResult();
+                    if ((nodes_num == data_num && nodes_num > 0) &&
+                            mCommonApprovalFlowBean.getNodes().get(data_num - 1).getJn_dealResult() != null &&
+                            mCommonApprovalFlowBean.getNodes().get(data_num - 1).getJn_dealResult().equals("同意")) {
+                        status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.approval));
+                        status_tv.setText("已审批");
+                    }else {
+                        status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.no_approval));
+                        status_tv.setText("待审批");
+                    }
+                }
+                else {
                     status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.no_approval));
                     status_tv.setText("待审批");
                 }
-            }
-            else {
+                if (!em_number.isEmpty() && em_number.length() > 0) {
+                    String whichsys = CommonUtil.getSharedPreferences(mContext, "erp_master");
+                    String[] selectionArgs = {em_number, whichsys};
+                    String selection = "em_code=? and whichsys=? ";
+                  try{
+                      //获取数据库数据
+                      EmployeesEntity bean = manager.selectForEmployee(selectionArgs, selection);
+                      if (bean != null) {
+                          String imId = String.valueOf(bean.getEm_IMID());
+                          String imName = String.valueOf(bean.getEM_NAME());
+                          String imDepartment = String.valueOf(bean.getEM_DEFAULTORNAME());
+                          String imPosition = String.valueOf(bean.getEM_POSITION());
+
+                          name_tv.setText(imName);
+                          if (!StringUtils.isEmpty(imId)) {
+                              AvatarHelper.getInstance().display(imId, photo_im, true, false);
+                          }else{
+                              String imageUri = "drawable://" + R.drawable.common_header_boy;
+                              AvatarHelper.getInstance().display(imageUri, photo_im, true);
+                          }//显示圆角图片
+                          section_tv.setText(imDepartment + ">" + imPosition);
+
+                          Log.i("todo", "imId=" + imId + "imName" + imName + "imDepartment" + imDepartment + "imPosition" + imPosition);
+                      } else {
+                          ToastMessage("单据申请人数据获取异常");
+                      }
+                  }catch (Exception e){
+                      e.printStackTrace();
+                  }
+                }
+            } else if (ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())
+                    && ListUtils.isEmpty(mCommonApprovalFlowBean.getNodes())
+                    && ListUtils.isEmpty(mCommonApprovalFlowBean.getData())){
+
+                status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.titleBlue));
+                status_tv.setText("未提交");
+              
+            }else {
                 status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.no_approval));
                 status_tv.setText("待审批");
             }
-            if (!em_number.isEmpty() && em_number.length() > 0) {
-                String whichsys = CommonUtil.getSharedPreferences(mContext, "erp_master");
-                String[] selectionArgs = {em_number, whichsys};
-                String selection = "em_code=? and whichsys=? ";
-                try{
-                    //获取数据库数据
-                    EmployeesEntity bean = manager.selectForEmployee(selectionArgs, selection);
-                    if (bean != null) {
-                        String imId = String.valueOf(bean.getEm_IMID());
-                        String imName = String.valueOf(bean.getEM_NAME());
-                        String imDepartment = String.valueOf(bean.getEM_DEFAULTORNAME());
-                        String imPosition = String.valueOf(bean.getEM_POSITION());
-
-                        name_tv.setText(imName);
-                        if (!StringUtils.isEmpty(imId)) {
-                            AvatarHelper.getInstance().display(imId, photo_im, true, false);
-                        }else{
-                            String imageUri = "drawable://" + R.drawable.common_header_boy;
-                            AvatarHelper.getInstance().display(imageUri, photo_im, true);
-                        }//显示圆角图片
-                        section_tv.setText(imDepartment + ">" + imPosition);
-
-                        Log.i("todo", "imId=" + imId + "imName" + imName + "imDepartment" + imDepartment + "imPosition" + imPosition);
-                    } else {
-                        ToastMessage("单据申请人数据获取异常");
-                    }
-                }catch (Exception e){
-                    e.printStackTrace();
-                }
-            }
-        } else if (ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())
-                && ListUtils.isEmpty(mCommonApprovalFlowBean.getNodes())
-                && ListUtils.isEmpty(mCommonApprovalFlowBean.getData())){
-
-            status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.titleBlue));
-            status_tv.setText("未提交");
-
-        }else {
-            status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.no_approval));
-            status_tv.setText("待审批");
-        }
 
         // 当单据未提交 未触发审批流时,默认静态显示申请人的信息
         if(ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())){
@@ -487,40 +518,54 @@ public class CommonDocDetailsActivity extends BaseActivity {
         // 界面下面的按钮操作
         if ((!ListUtils.isEmpty(mCommonApprovalFlowBean.getNodes()) && !ListUtils.isEmpty(mCommonApprovalFlowBean.getData()) &&
                 mCommonApprovalFlowBean.getData().size() == mCommonApprovalFlowBean.getNodes().size())
-                && mCommonApprovalFlowBean.getNodes().get(mCommonApprovalFlowBean.getNodes().size() -1).getJn_dealResult().equals("同意")){
-            resanddel_ll.setVisibility(View.GONE);
-            approval_ll.setVisibility(View.GONE);
+                    && mCommonApprovalFlowBean.getNodes().get(mCommonApprovalFlowBean.getNodes().size() -1).getJn_dealResult().equals("同意")){
+                resanddel_ll.setVisibility(View.GONE);
+                approval_ll.setVisibility(View.GONE);
         }else {
             approval_ll.setVisibility(View.GONE);
             resanddel_ll.setVisibility(View.VISIBLE);
 
-            //  重新提交
-            resubmit_ll.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
                     resubmit_ll.setOnClickListener(new View.OnClickListener() { // 重新提交
                         @Override
                         public void onClick(View v) {
-                            new AlertDialog
-                                    .Builder(mContext)
-                                    .setTitle("温馨提示")
-                                    .setMessage("\t\t确定反提交该条单据吗?")
-                                    .setNegativeButton("取消", null)
-                                    .setPositiveButton("确认", new DialogInterface.OnClickListener() {
-                                        @Override
-                                        public void onClick(DialogInterface dialog, int which) {
-                                            startActivity(new Intent(CommonDocDetailsActivity.this, DataFormDetailActivity.class)
-                                                    .putExtra("caller", mCaller)
-                                                    .putExtra("id", mkeyValue));
-                                            //finish();
-                                        }
-                                    }).show();
+
+                            if (ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())
+                                    && ListUtils.isEmpty(mCommonApprovalFlowBean.getNodes())
+                                    && ListUtils.isEmpty(mCommonApprovalFlowBean.getData())) {  //在录入状态不反提交
+
+                                startActivity(new Intent(CommonDocDetailsActivity.this, DataFormDetailActivity.class)
+                                        .putExtra("caller", mCaller)
+                                        .putExtra("id", mkeyValue)
+                                        .putExtra("submittype","dosubmit"));
+
+
+                            } else {  //已提交状态可进行反提交
+                                new AlertDialog
+                                        .Builder(mContext)
+                                        .setTitle("温馨提示")
+                                        .setMessage("\t\t确定反提交该条单据吗?")
+                                        .setNegativeButton("取消", null)
+                                        .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+                                            @Override
+                                            public void onClick(DialogInterface dialog, int which) {
+                                                String url = Constants.getAppBaseUrl(ct) + "/mobile/commonres.action";
+                                                Map<String, Object> params = new HashMap<>();
+                                                params.put("caller", mCaller);
+                                                params.put("id", mkeyValue);
+                                                LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+                                                headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+                                                ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, COM_DOC_RESUB_SUCCESSFUL, null, null, "post");
+
+                                            }
+                                        }).show();
+                            }
+
                         }
                     });
 
                 }
-            });
-            //            // 删除
+
+            // 删除
             delete_ll.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
@@ -538,7 +583,9 @@ public class CommonDocDetailsActivity extends BaseActivity {
                 }
             });
         }
-    }
+
+
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 20 - 20
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/form/DataFormDetailActivity.java

@@ -94,7 +94,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
     private String endDate;
     private String d_startDate;
     private String d_endDate;
-    
+
 
     private Handler mHandler = new Handler() {
 
@@ -130,7 +130,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                         endDate="fp_preenddate";
                         d_startDate="fpd_date1";
                         d_endDate="fpd_date2";
-                        
+
                         formidkey = "fp_id";
                         detailkey_id = "fpd_id";
                         detailkey_did = "fpd_fpid";
@@ -593,8 +593,8 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
         private ArrayList<GroupData> mListData;
         private ArrayList<Data> datas;
         private ArrayList<Integer> groupIndex;
-        
-        
+
+
         //在初始化的的时候,把分类处理完整
         public DataAdapter(Context ct, ArrayList<GroupData> mdata) {
             this.ct = ct;
@@ -745,7 +745,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
         public ArrayList<GroupData> getmListData() {
             return mListData;
         }
-        
+
         public void setmListData(ArrayList<GroupData> mdata) {
             this.mListData = mdata;
             groupIndex = new ArrayList<>();
@@ -788,14 +788,14 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                     textView.setText(itemValue.getGroup());
                     try {
                         if (StringUtils.isEmpty(itemValue.getGroup())) {
-                                header.setVisibility(View.GONE);
+                            header.setVisibility(View.GONE);
                         } else {
-                          
-                                if (itemValue.getGroup().contains("明细") && !itemValue.getGroup().equals("明细项1")) {
-                                    item_add.setVisibility(View.VISIBLE);
-                                } else {
-                                    item_add.setVisibility(View.GONE);
-                                }
+
+                            if (itemValue.getGroup().contains("明细") && !itemValue.getGroup().equals("明细项1")) {
+                                item_add.setVisibility(View.VISIBLE);
+                            } else {
+                                item_add.setVisibility(View.GONE);
+                            }
                         }
                     } catch (Exception e) {
                         e.printStackTrace();
@@ -978,7 +978,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                         
                         
                     });
-                    
+
                     if (!StringUtils.isEmpty(data.getValue())) {
                         model.editText.setText(data.getValue());
                     }
@@ -1222,7 +1222,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
 
                         }
                     }
-                    
+
                     if (i == items.size() - 1) {
                         forStore.append("\"" + key + "\":\"" + value + "\"}");
                     } else {
@@ -1249,7 +1249,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                             ToastMessage(item.getName() + "不能为空!");
                             return;
                         }
-                        
+
                         //日期格式判断
                         if (!StringUtils.isEmpty(d_startDate)&&!StringUtils.isEmpty(d_endDate)){
                             if (key.equals(d_startDate)){
@@ -1263,13 +1263,13 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                     if (d_end.compareTo(d_start)<0){
                                         ToastMessage(item.getName()+"不能小于"+startName);
                                         return;
-                                    } 
+                                    }
                                 }
-                               
+
                             }
                         }
-                     
-                            
+
+
                         if (j == items.size() - 1) {
                             gridStore.append("\"" + key + "\":\"" + value + "\"");
                         } else {
@@ -1475,7 +1475,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
         String url = Constants.getAppBaseUrl(ct) + "/mobile/commonUpdate.action";
         Map<String, Object> params = new HashMap<>();
         params.put("caller", caller);
-        params.put("keyid", formid);
+        params.put("keyid",String.valueOf(formid));
         params.put("formStore", formStore);
         params.put("gridStore", gridStore);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();

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

@@ -38,6 +38,7 @@ import com.xzjmyk.pm.activity.view.MyListView;
 
 import org.json.JSONException;
 import org.json.JSONObject;
+import org.w3c.dom.Text;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -419,6 +420,8 @@ public class DailydetailsActivity extends BaseActivity {
                                             intent.putExtra("UC_Summary",summary);
                                             intent.putExtra("UC_Plan",plan);
                                             intent.putExtra("UC_Experience",experience);
+                                            intent.putExtra("id",mkeyValue);
+                                            intent.putExtra("resubmit","resubmit");
                                             startActivity(intent);
                                             finish();
                                         }
@@ -443,8 +446,13 @@ public class DailydetailsActivity extends BaseActivity {
                            LogUtil.prinlnLongMsg("delete_result",delete_result);
                            if (JSON.parseObject(delete_result).containsKey("success") && JSON.parseObject(delete_result).getBoolean("success")) {
                                Toast.makeText(ct, "单据删除成功", Toast.LENGTH_SHORT).show();
-                               startActivity(new Intent(activity,WorkDailyShowActivity.class));
-                               finish();
+                               if (!TextUtils.isEmpty(fromwhere) && fromwhere.equals("dailylist")){
+                                   finish();
+                               }else {
+                                   startActivity(new Intent(activity,WorkDailyShowActivity.class));
+                                   finish();
+                               }
+
                            }
                        }
                    }

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

@@ -36,7 +36,7 @@ import java.util.List;
 /**
  * 选择地址
  * 1.外勤签到、打卡签到、会议详情、工作圈发动态定位
- * 2、参数:1、title(标题String) 2、style(主题 int) 3、Single(是否单选 boolean)
+ * 2、参数:1、title(标题String) 2、style(主题 int) 3、Single(是否单选 boolean) 7、qzone_select_add (工作圈定位设置自定义标题String)
  * 4、search(是否有搜索框 boolean) 5、resultcode(返回码 int) 6、type(搜索方式int 1.搜索附近 2.搜索地名)
  */
 public class LocationMapActivity extends BaseActivity implements OnGetPoiSearchResultListener {
@@ -62,6 +62,11 @@ public class LocationMapActivity extends BaseActivity implements OnGetPoiSearchR
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_map_location);
         location = getIntent().getIntExtra("data", 500);
+
+        String qzone_select_add = getIntent().getStringExtra("qzone_select_add");
+        if (!TextUtils.isEmpty(qzone_select_add) && qzone_select_add.equals("qzone_select_add")){
+            getSupportActionBar().setTitle("选择位置");
+        }
         init();
         initView();
         BaiduMapUtil.getInstence().getNearInfo(location, 0, point, "公司", new BaiduMapUtil.OnSearchPoiListener() {
@@ -76,6 +81,7 @@ public class LocationMapActivity extends BaseActivity implements OnGetPoiSearchR
     //设置主题
     private void setThisTheme() {
         String action = getIntent().getStringExtra("action");
+
         int theme = 0;
         if (!StringUtils.isEmpty(action)) {
             if (action.equals("SigninFragment")) {
@@ -93,6 +99,7 @@ public class LocationMapActivity extends BaseActivity implements OnGetPoiSearchR
     }
 
     private void initView() {
+
         mapView = (MapView) findViewById(R.id.bmapView);
         listView = (PullToRefreshListView) findViewById(R.id.listview);
         listView.setEmptyView(R.layout.view_empty);

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

@@ -21,7 +21,6 @@ import com.xzjmyk.pm.activity.ui.erp.entity.ErrorEntity;
 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;
-import com.xzjmyk.pm.activity.util.TimeUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -58,7 +57,7 @@ public class TestActivity extends BaseActivity implements View.OnClickListener {
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.error_list:
-                List<WorkModel> models = WorkModelDao.getInstance().query(true, TimeUtils.s_long_2_str(System.currentTimeMillis()));
+                List<WorkModel> models = WorkModelDao.getInstance().query(true );
                 if (ListUtils.isEmpty(models)) {
                     show("models  为空");
                 } else {

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

@@ -154,6 +154,7 @@ public class WorkDailyAddActivity extends BaseActivity {
     private String last_change_experience;
     private String last_change_plan;
     private String last_change_summary;
+    private String un_submit;
 
     public void jumptododetail(int mkeyValue) {
         Intent intent = new Intent(activity, DailydetailsActivity.class);
@@ -318,6 +319,9 @@ public class WorkDailyAddActivity extends BaseActivity {
         });
         // 判断有没从详情界面返回的 未提交单据的数据
         Intent intent = getIntent();
+        if (intent.getStringExtra("resubmit") !=null && intent.getStringExtra("resubmit").equals("resubmit")){
+            un_submit = intent.getStringExtra("resubmit");
+        }
         if (intent.getStringExtra("UC_Summary") != null) {
             add_summary.setText(intent.getStringExtra("UC_Summary"));
         } else {
@@ -424,7 +428,8 @@ public class WorkDailyAddActivity extends BaseActivity {
 
 
         //执行重新提交之更改单据状态操作
-        if (!TextUtils.isEmpty(resubmit) && resubmit.equals("resubmit") && mkeyValue != 0) {
+        if ((!TextUtils.isEmpty(resubmit) && resubmit.equals("resubmit") && mkeyValue != 0) ||
+                (!TextUtils.isEmpty(un_submit) && un_submit.equals("resubmit"))) {
             String sb_summary = string2Json(last_change_summary);
             String sb_plan = string2Json(last_change_plan);
             String sb_experience = string2Json(last_change_experience);

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

@@ -24,7 +24,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baidu.mapapi.search.core.PoiInfo;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
-import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
@@ -125,7 +124,6 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                         companyDistance = Integer.parseInt(jsonObject.containsKey("distance") ? (StringUtils.isEmpty(jsonObject.getString("distance")) ? "-1" : jsonObject.getString("distance")) : "-1");
                         companyX = Double.parseDouble(jsonObject.containsKey("longitude") ? (StringUtils.isEmpty(jsonObject.getString("longitude")) ? "0" : jsonObject.getString("longitude")) : "0");
                         companyY = Double.parseDouble(jsonObject.containsKey("latitude") ? (StringUtils.isEmpty(jsonObject.getString("latitude")) ? "0" : jsonObject.getString("latitude")) : "0");
-
                         PreferenceUtils.putFloat("longitude", (float) companyX);
                         PreferenceUtils.putFloat("latitude", (float) companyY);
                         PreferenceUtils.putInt("distance", companyDistance);
@@ -321,16 +319,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                 getActivity().overridePendingTransition(R.anim.anim_activity_back_in, R.anim.anim_activity_back_out);
                 break;
             case R.id.signin_btn:
-                if (!AppConfig.COMPANY) {
-                    if (!AppConfig.COMPANY) {
-                        CodeUtil.getInstance().getCode(ct, "CardLog", new CodeUtil.OnCodeLinstener() {
-                            @Override
-                            public void callBack(String code) {
-                                doSigninByNotCompany(code);
-                            }
-                        });
-                    }
-                } else if (isPlay()) {
+                if (isPlay()) {
                     if (!CommonUtil.isNetWorkConnected(ct)) {
                         Crouton.makeText(ct, "当前网络不可用,请检查网络连接", Style.holoRedLight, 2000);
                         return;
@@ -812,6 +801,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
 
     //签到
     private void doSignin(String code) {
+        ct.progressDialog.show();
         isSignining = true;
         signin_btn.setFocusable(false);
         String url = "mobile/saveCardLog.action";
@@ -835,34 +825,6 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
         loadNet(url, param, 0x13);
     }
 
-    private void doSigninByNotCompany(String code) {
-        isSignining = true;
-        signin_btn.setFocusable(false);
-        String url = "mobile/saveCardLog.action";
-        Map<String, Object> param = new HashMap<>();
-        Map<String, Object> form = new HashMap<>();
-        form.put("cl_code", code);
-        form.put("cl_phone", MyApplication.getInstance().mLoginUser.getTelephone());
-        form.put("cl_emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        String emname = CommonUtil.getSharedPreferences(ct, "erp_emname");
-        if (StringUtils.isEmpty(emname)) {
-            emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
-        }
-        form.put("cl_emname", emname);
-        if (distance > companyDistance) {
-            form.put("cl_location", "英唐大厦");
-            form.put("cl_distance", Math.random() * 100);
-            form.put("cl_address", "中国广东省深圳市南山区科技南五路5");
-        } else {
-            form.put("cl_location", loaction);
-            form.put("cl_distance", distance);
-            form.put("cl_address", addr);
-        }
-        String formStore = StringUtils.mapToJson(form);
-        param.put("caller", "CardLog");
-        param.put("formStore", formStore);
-        loadNet(url, param, 0x13);
-    }
 
     //请求合并,抽取共同代码
     private void loadNet(String urlCheche, Map<String, Object> param, int what) {

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

@@ -47,6 +47,7 @@ import static com.xzjmyk.pm.activity.util.PreferenceUtils.getBoolean;
  * 0x12:打卡列表
  * Created by Bitliker on 2016/11/25.
  */
+@Deprecated
 public class SigninUtil {
     private NotificationManage notificationManage;
     private Context ct;

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

@@ -12,17 +12,39 @@ import android.os.IBinder;
 import android.util.Log;
 
 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.SigningDao;
+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.WorkModel;
+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;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
+import static com.xzjmyk.pm.activity.util.PreferenceUtils.getBoolean;
+
 /**
  * 自动Erp服务,开启线程
  */
-public class AutoErpService extends Service {
+public class AutoErpService extends Service implements CacheAutoUtil.OnLoadListener {
+    public static final int STATUS_SIGNING = 0x11;//自动打卡
+    public static final int STATUS_WORK_ALARM = 0x12;//上班提醒
+    public static final int STATUS_OFF_ALARM = 0x13;//下班提醒
+    public static final int STATUS_MISSION = 0x14;//外勤签到
+    public static final int STATUS_LEAVE_ALARM = 0x15;//离开提醒
+
 
+    private CacheAutoUtil cacheAutoUtil;//工具类
+    private ReckonAutoUtil reckonAutoUtil;
+    private boolean isAlarm;//是否打卡提醒
+    private boolean isAuto;//是否自动打卡
+    private long intervalTime = 1 * 60 * 1000;//计算循环的时间
+    private int iter = 0;
     private final String[] flags = {
 
     };
@@ -33,6 +55,7 @@ public class AutoErpService extends Service {
         }
     };
 
+
     @Override
     public IBinder onBind(Intent intent) {
         throw new UnsupportedOperationException("Not yet implemented");
@@ -43,7 +66,7 @@ public class AutoErpService extends Service {
         try {
             initBroadcast();
             initDB();
-            initNet();
+            init();
             initTask();
         } catch (Exception e) {
             e.printStackTrace();
@@ -82,24 +105,141 @@ public class AutoErpService extends Service {
     /**
      * 初始化数据库
      */
-    private void initDB() throws Exception {
-        //刚进来时候清空数据库,
-        SigningDao.getInstance().clearAll();
-        MissionDao.getInstance().clearAll();
+    private void initDB() {
+        //  刚进来时候清空昨天数据
+        try {
+            WorkModelDao.getInstance().clearAll(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
+            MissionDao.getInstance().clearAll(System.currentTimeMillis() - 24 * 60 * 60 * 1000);
+        } catch (Exception e) {
+            if (e != null)
+                log("initDB Exception=" + e.getMessage());
+        }
     }
 
     /**
      * 初始化网络请求
      */
-    private void initNet() {
+    private void init() {
+        initWork();
+        initMission();
+//        getCacheUtil().loadhasMission();//判断是否还有外勤计划
+    }
 
+    private void initMission() {
+        CommonInterfaceUtil commonInterfaceUtil = new CommonInterfaceUtil();
+        commonInterfaceUtil.getOutSetInfo(new CommonInterfaceUtil.OnResultListener() {
+            @Override
+            public void result(int code, String result) {
+                boolean isNeedAutoOut = getBoolean(AppConfig.AUTO_MISSION, false);
+                if (isNeedAutoOut) {
+                    getCacheUtil().loadMissionPlan();//缓存外勤计划列表
+                } else {
+                    try {
+                        //如果不是自动外勤,清空数据库今天的数据
+                        MissionDao.getInstance().clearAll(System.currentTimeMillis());
+                    } catch (Exception e) {
+                        if (e != null)
+                            log("initNet Exception=" + e.getMessage());
+                    }
+                }
+            }
+        });
+    }
+
+    private void initWork() {
+        //判断是否是自动打卡
+        //是否自动打卡
+        isAlarm = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.ALARMA_CLICK, false);
+        //是否提醒
+        isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.AUTO_SIGNIN, true);
+        if (isAlarm || isAuto) {
+            getCacheUtil().validatorMac();//缓存是否是本人mac地址
+            getCacheUtil().loadWorkData();//缓存打卡班次列表
+        } else {
+            try {
+                //如果不是自动打卡和提醒,清空数据库今天的数据
+                WorkModelDao.getInstance().clearAll(System.currentTimeMillis());
+            } catch (Exception e) {
+                if (e != null)
+                    log("initNet Exception=" + e.getMessage());
+            }
+        }
+    }
+
+
+    @Override
+    public void loadOk(boolean saveOk, int flag) {
     }
 
+    @Override
+    public void loadError(int flag, String message) {
+
+    }
+
+
     //开启异步任务
     private class AutoAsyncTask extends AsyncTask<Void, Map<String, Object>, Void> {
         @Override
         protected Void doInBackground(Void... voids) {
-            return null;
+            try {
+                while (true) {
+                    Map<String, Object> map = null;
+                    if (isCanMission()) {
+                        List<MissionPlanEntity> 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);
+                                if (mission != null) {
+                                    map.clear();
+                                    map.put("type", STATUS_MISSION);
+                                    map.put("data", mission);
+                                    publishProgress(map);
+                                }
+                            }
+                        }
+
+                    }
+                    if (isCanWork()) {
+                        if (isAuto) {
+                            WorkModel model = getReckonAutoUtil().reckonAutoWork();
+                            if (model != null) {
+                                //TODO 打卡
+                                map = new HashMap<>();
+                                map.put("type", STATUS_SIGNING);
+                                map.put("data", model);
+                                publishProgress(map);
+                            }
+                        } else if (isAlarm) {
+                            int type = getReckonAutoUtil().reckonAlarm(intervalTime);
+                            if (type == 1) {
+                                map = new HashMap<>();
+                                map.put("type", STATUS_LEAVE_ALARM);
+                                publishProgress(map);
+                            } else if (type == 2) {
+                                map = new HashMap<>();
+                                map.put("type", STATUS_WORK_ALARM);
+                                publishProgress(map);
+                            } else if (type == 2) {
+                                map = new HashMap<>();
+                                map.put("type", STATUS_OFF_ALARM);
+                                publishProgress(map);
+                            }
+                        }
+                    }
+                    iter++;
+                    Thread.sleep(intervalTime);
+                }
+            } catch (Exception e) {
+                if (e != null)
+                    log("AutoAsyncTask Exception=" + e.getMessage());
+            } finally {
+                return null;
+            }
+
         }
 
         @Override
@@ -108,6 +248,23 @@ public class AutoErpService extends Service {
         }
     }
 
+    private ReckonAutoUtil getReckonAutoUtil() {
+        if (reckonAutoUtil == null) reckonAutoUtil = new ReckonAutoUtil();
+        return reckonAutoUtil;
+    }
+
+    private CacheAutoUtil getCacheUtil() {
+        if (cacheAutoUtil == null) cacheAutoUtil = new CacheAutoUtil(this);
+        return cacheAutoUtil;
+    }
+
+    private boolean isCanMission() {
+        return true;
+    }
+
+    private boolean isCanWork() {
+        return true;
+    }
 
     /**
      * 打印信息方法

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

@@ -6,9 +6,12 @@ import android.util.Log;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baidu.mapapi.model.LatLng;
 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.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -20,6 +23,7 @@ import com.xzjmyk.pm.activity.util.TimeUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import static com.xzjmyk.pm.activity.ui.erp.util.CommonUtil.getSharedPreferences;
@@ -35,17 +39,21 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
     private final int MAC_VAL = 0x13;//判断mac地址
     private final int HAVE_OUT_PLAN = 0x14;//判断是否还有外勤
     private final int LOAD_PLAN = 0x15;//外勤计划
+    private OnLoadListener onLoadListener;
 
-
-
-    public CacheAutoUtil() {
+    public CacheAutoUtil(OnLoadListener onLoadListener) {
+        this.onLoadListener = onLoadListener;
     }
 
-
     @Override
     public void result(int what, boolean isJSON, String message, Bundle bundle) {
         try {
-            handlerSuccess(what, isJSON, message, bundle);
+            if (isJSON) {
+                JSONObject object = JSON.parseObject(message);
+                handlerSuccess(what, object, bundle);
+            } else {
+                //TODO 返回不是json数据的情况
+            }
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -54,20 +62,21 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
     @Override
     public void error(int what, int statuCode, String message, Bundle bundle) {
         try {
+            //TODO 返回错误时候
+
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
     /**
-     * 获取打卡班次 net
+     * 获取打卡班次,为了自动打卡,只缓存当天的数据 net
      */
-    public void loadWorkData(long time) {
+    public void loadWorkData() {
         Map<String, Object> param = new HashMap<>();
-        param.put("date", TimeUtils.int_long_2_str(time));
+        param.put("date", TimeUtils.int_long_2_str(System.currentTimeMillis()));
         param.put("emcode", getSharedPreferences(MyApplication.getInstance(), "erp_username"));
         Bundle bundle = new Bundle();
-        bundle.putLong("time", time);
         HttpHandler.getInstance().loadERPByNet(WORK_DATA, "mobile/getWorkDate.action", param, bundle, this);
     }
 
@@ -106,7 +115,7 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
     /**
      * 获取是否有外勤计划 net
      */
-    public void loadIsMission() {
+    public void loadhasMission() {
         Map<String, Object> param = new HashMap<>();
         param.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
         HttpHandler.getInstance().
@@ -123,34 +132,48 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
                 loadERPByNet(LOAD_PLAN, "mobile/mobileoutplan.action", param, null, this);
     }
 
-    /*************************************
+    /*****************
      * 处理数据
-     * ********************************************
+     ********************/
+
+    /**
+     * 当访问网络获取数据成功
      *
-     * @param what
-     * @param isJSON
-     * @param message
-     * @param bundle
+     * @param what   请求标识
+     * @param object json对象
+     * @param bundle bundle对象
+     * @throws Exception
      */
-    private void handlerSuccess(int what, boolean isJSON, String message, Bundle bundle) throws Exception {
+    private void handlerSuccess(int what, JSONObject object, Bundle bundle) throws Exception {
         switch (what) {
             case WORK_DATA://打卡班次
-                long time = System.currentTimeMillis();
-                if (bundle != null) time = bundle.getLong("time");
-                handlerWorkData(isJSON, message, time);
+                handlerWorkData(object);
                 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);
+                handlerWorkLog(object, models);
                 break;
             case MAC_VAL://判断mac地址
+                String emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
+                PreferenceUtils.putBoolean("MAC" + emcode, true);
                 break;
             case HAVE_OUT_PLAN://判断是否还有外勤
+                if (!object.containsKey("success") || !object.getBoolean("success")) return;
+                if (object.containsKey("isOffline")) {
+                    int isOffline = Integer.valueOf(object.getString("isOffline"));
+                    //当判断到外勤计划为有值  1.外勤计划有  2.自动外勤
+                    PreferenceUtils.putBoolean(AppConfig.HAVE_OUT_PLAN, isOffline > 0);
+                }
                 break;
             case LOAD_PLAN://外勤计划
+                JSONArray array = null;
+                if (object.get("data") instanceof JSONArray) {
+                    array = object.getJSONArray("data");
+                } else if (object.get("success") instanceof JSONArray) {
+                    array = object.getJSONArray("success");
+                }
+                handlerMission(array);
                 break;
         }
     }
@@ -159,13 +182,9 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
     /**
      * 处理打卡签到
      *
-     * @param isJSON
-     * @param message
-     * @param time
+     * @param object json对象
      */
-    private void handlerWorkData(boolean isJSON, String message, long time) throws Exception {
-        if (!isJSON) return;
-        JSONObject object = JSON.parseObject(message);
+    private void handlerWorkData(JSONObject object) throws Exception {
         double longitude = 0, latitude = 0;
         int distance = 0;
         boolean comaddressset = object.getBooleanValue("comaddressset");
@@ -202,7 +221,7 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
         if (ListUtils.isEmpty(models)) {
             return;
         }
-        loadLog(models, time);
+        loadLog(models, System.currentTimeMillis());
     }
 
     /**
@@ -249,19 +268,10 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
     /**
      * 处理打卡签到列表,建议在线程钟使用
      *
-     * @param isJSON  是否是json数据
-     * @param message 返回信息
-     * @param models  获取班次信息时候的数据
-     * @param logTime
+     * @param models 获取班次信息时候的数据
      * @throws Exception
      */
-    private void handlerWorkLog(boolean isJSON, String message, ArrayList<WorkModel> models, long logTime) throws Exception {
-        if (!isJSON || ListUtils.isEmpty(models)) {
-            //TODO 数据为空,容错处理
-            log("ListUtils.isEmpty(models) 数据为空,容错处理");
-            return;
-        }
-        JSONObject object = JSON.parseObject(message);
+    private void handlerWorkLog(JSONObject object, ArrayList<WorkModel> models) throws Exception {
         JSONArray listdata = object.getJSONArray("listdata");
         if (ListUtils.isEmpty(listdata)) {
             //TODO 数据为空,容错处理
@@ -293,7 +303,53 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
             }
         }
         //保存数据库
-        WorkModelDao.getInstance().createOrUpdata(models,logTime);
+        WorkModelDao.getInstance().createOrUpdata(models);
+    }
+
+    /**
+     * 解析处理外勤计划列表并保存到数据库
+     *
+     * @param array
+     */
+    private void handlerMission(JSONArray array) throws Exception {
+        if (ListUtils.isEmpty(array)) {
+            //TODO 外勤计划列表为空情况
+            return; //获取到拜访计划数据
+        }
+        JSONObject object = null;
+        MissionPlanEntity entity = null;
+        List<MissionPlanEntity> entities = new ArrayList<>();
+        for (int i = 0; i < array.size(); i++) {
+            object = array.getJSONObject(i);
+            entity = new MissionPlanEntity();
+            entity.setId(object.getInteger("MPD_ID"));
+            entity.setCompanyName(object.getString("MPD_COMPANY"));
+            entity.setCompanyAddr(object.getString("MPD_ADDRESS"));
+            double longitude = object.getDoubleValue("MD_LONGITUDE");
+            double latitude = object.getDoubleValue("MD_LATITUDE");
+            if (longitude > 0 && latitude > 0) {
+                entity.setLatLng(new LatLng(latitude, longitude));
+            }
+            if (object.containsKey("MPD_ARRIVEDATE")) {
+                entity.setVisitTime(object.getString("MPD_ARRIVEDATE"));
+            } else if (object.containsKey("TO_CHAR(MPD_ARRIVEDATE,'YYYY-MM-DDHH24:MI:SS')")) {
+                entity.setVisitTime(object.getString("TO_CHAR(MPD_ARRIVEDATE,'YYYY-MM-DDHH24:MI:SS')"));
+            }
+            try {
+                long mpd_actdate = object.getLongValue("MPD_ACTDATE");
+                long mpd_outdate = object.getLongValue("MPD_OUTDATE");
+                if (mpd_actdate != 0)
+                    entity.setRealTime(TimeUtils.f_long_2_str(mpd_actdate));
+                if (mpd_outdate != 0)
+                    entity.setRealLeave(TimeUtils.f_long_2_str(mpd_outdate));
+            } catch (Exception e) {
+            }
+            entity.setStatus(0);
+            entities.add(entity);
+        }
+        if (!ListUtils.isEmpty(entities))
+            MissionDao.getInstance().updataOrCreate(entities);
+
     }
 
 
@@ -310,14 +366,6 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
         return TimeUtils.long2str(time, "HH:mm");
     }
 
-    public interface LoadListener {
-        //正确信息
-        void loadOk(String message);
-
-        //错误信息
-        void loadError(String message);
-    }
-
 
     private String getMinTime(String time) {
         if (StringUtils.isEmpty(time)) {
@@ -327,6 +375,25 @@ public class CacheAutoUtil implements HttpHandler.OnResultListener {
         }
     }
 
+
+    public interface OnLoadListener {
+        /**
+         * 下拉正确时候
+         *
+         * @param saveOk 是否保存成功
+         * @param flag   标识位
+         */
+        void loadOk(boolean saveOk, int flag);
+
+        /**
+         * 处理错误情况
+         *
+         * @param flag    标识位
+         * @param message 错误原因
+         */
+        void loadError(int flag, String message);
+    }
+
     private void log(String message) {
         try {
             if (!AppConfig.DEBUG || StringUtils.isEmpty(message)) return;

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

@@ -0,0 +1,192 @@
+package com.xzjmyk.pm.activity.ui.erp.util.attendance;
+
+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.WorkModel;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.util.BaiduMapUtil;
+import com.xzjmyk.pm.activity.util.PreferenceUtils;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+
+import java.util.List;
+
+/**
+ * 计算自动外勤和自动打卡工具类
+ * Created by Bitliker on 2016/12/13.
+ */
+public class ReckonAutoUtil {
+
+    /**
+     * 计算是否符合自动外勤,返回外勤列表中距离最小的对象,如果不符合,返回空
+     * 1.判断进行中的外勤计划,如果离开了签到最后一次,结束该计划
+     * 2.如果第一个不存在,判断获取最近的位置(包含已经结束的,防止定位不准问题)
+     *
+     * @param list 外勤列表数据
+     * @return
+     * @throws ClassCastException
+     */
+    public MissionPlanEntity reckonMission(List<MissionPlanEntity> list) throws ClassCastException {
+        int companyDistance = PreferenceUtils.getInt(AppConfig.ALARM_MISSION_DISTANCE, 500);
+        MissionPlanEntity minBean = null;
+        float minDistance = 0;
+        if (ListUtils.isEmpty(list)) {
+            return minBean;
+        }
+        for (MissionPlanEntity e : list) {
+            if (e.getLatLng() == null) continue;//定位不存在
+            //获取当前与目的地的距离
+            if (e.getStatus() == 2) continue;
+            float distance = Float.valueOf(BaiduMapUtil.getInstence().getDistance(e.getLatLng()));
+            if (distance > companyDistance && !StringUtils.isEmpty(e.getRealTime())) {
+                //1.判断进行中的外勤计划,如果离开了签到最后一次,结束该计划
+                log("符合外勤签退");
+                minBean = e;
+                minBean.setStatus(2);//结束该外勤
+                break;
+            } else if (distance < companyDistance) { //判断符合自动外勤
+                log("符合外勤签到");
+                if (minDistance <= 0 || minDistance > distance) {//2.如果第一个不存在,判断获取最近的位置
+                    minDistance = distance;
+                    minBean = e;
+                    minBean.setStatus(1);
+                }
+            }
+        }
+        return minBean;
+    }
+
+
+    /**
+     * 计算自动打卡
+     */
+    public WorkModel reckonAutoWork() {
+        WorkModel model = getPlaceWork();
+        if (model == null) return null;
+        if (StringUtils.isEmpty(model.getWorkStart()) || StringUtils.isEmpty(model.getWorkTime()) ||
+                StringUtils.isEmpty(model.getWorkend()) || StringUtils.isEmpty(model.getOffStart()) ||
+                StringUtils.isEmpty(model.getOffTime()) || StringUtils.isEmpty(model.getOffend()))
+            return null;
+        long workStart = getTimeByHHmm(model.getWorkStart());
+        long workEnd = getTimeByHHmm(model.getWorkTime());
+        long offStart = getTimeByHHmm(model.getOffTime());
+        long offEnd = getTimeByHHmm(model.getOffend());
+        if ((workStart < System.currentTimeMillis() && workEnd > System.currentTimeMillis()) ||
+                (offStart < System.currentTimeMillis() && offEnd > System.currentTimeMillis()))
+            return model;
+        return null;
+    }
+
+    /**
+     * 计算是否符合提醒
+     *
+     * @param intervalTime
+     * @return
+     */
+    public int reckonAlarm(long intervalTime) {
+        WorkModel model = getPlaceWork();
+        if (model == null) return 0;
+        if (isOutoffWork(model)) return 1;
+        long time = getWorkAlarm(model);
+        if (time != 0 && Math.abs(System.currentTimeMillis() - time) <= intervalTime) {
+            model.setWorkAlarm(true);
+            long i = WorkModelDao.getInstance().update(model);
+            if (i > 0)
+                return 2;
+        }
+        time = getOffAlarm(model);
+        if (time != 0 && Math.abs(System.currentTimeMillis() - time) <= intervalTime) {
+            model.setOffAlarm(true);
+            long i = WorkModelDao.getInstance().update(model);
+            if (i > 0)
+                return 3;
+        }
+        return 0;
+    }
+
+
+    //获取当前所处于的班次
+    public WorkModel getPlaceWork() {
+        List<WorkModel> models = WorkModelDao.getInstance().query(false);//获取当天所有班次,去除迟到和早退签到数据
+        if (ListUtils.isEmpty(models)) return null;
+        for (WorkModel m : models) {
+            if (StringUtils.isEmpty(m.getOffend()) || StringUtils.isEmpty(m.getWorkStart()))
+                continue;
+            long start = getTimeByHHmm(m.getWorkStart());
+            long end = getTimeByHHmm(m.getOffend());
+            if (end > System.currentTimeMillis() && start < System.currentTimeMillis()) return m;
+        }
+        return null;
+    }
+
+
+    private long getWorkAlarm(WorkModel model) {
+        if (model == null || !StringUtils.isEmpty(model.getWorkSignin()) || model.isWorkAlarm() || StringUtils.isEmpty(model.getWorkTime()))
+            return 0;
+        int difference = CommonUtil.getSharedPreferencesInt(MyApplication.getInstance(), "ALARM_WORK_TIME", 5);//上班提前xx分钟
+        return getTimeByHHmm(model.getWorkTime()) - difference * 60000;
+    }
+
+
+    private long getOffAlarm(WorkModel model) {
+        if (model == null || !StringUtils.isEmpty(model.getOffSignin()) || model.isOffAlarm() || StringUtils.isEmpty(model.getOffTime()))
+            return 0;
+        int difference = CommonUtil.getSharedPreferencesInt(MyApplication.getInstance(), "ALARM_OFFWORK_TIME", 5);//下班延迟xx分钟
+        return getTimeByHHmm(model.getOffTime()) + difference * 60000;
+    }
+
+
+    /*通过时分获取当天改时间时间戳*/
+    private long getTimeByHHmm(String time) {
+        if (StringUtils.isEmpty(time)) return 0;
+        String che = TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + time + ":00";//当天下班时间
+        return TimeUtils.f_str_2_long(che);
+    }
+
+    //5.判断是否离开工作范围
+    protected boolean isOutoffWork(WorkModel model) {
+        if (!isWorkTime(model)) return false;
+        int comDistance = PreferenceUtils.getInt(MyApplication.getInstance(), "distance", 0);//规定距离
+        if (comDistance == 0) return false;
+        boolean is = comDistance < BaiduMapUtil.getInstence().getDistance() && !model.isLeaveAlarm();
+        if (is) {
+            model.setLeaveAlarm(true);
+            WorkModelDao.getInstance().update(model);
+        }
+        return is;
+    }
+
+    /*当前是否在办公时间内*/
+    private boolean isWorkTime(WorkModel model) {
+        try {
+            //此语句判空处理有问题!!! Arison
+            if (getTimeByHHmm(model.getWorkTime()) < System.currentTimeMillis() && getTimeByHHmm(model.getOffTime()) > System.currentTimeMillis())
+                return true;
+            else return false;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+
+    /**
+     * 打印信息方法
+     *
+     * @param message 信息内容
+     */
+    private void log(String message) {
+        try {
+            if (!AppConfig.DEBUG || StringUtils.isEmpty(message)) return;
+            Log.i("gongpengming", message);
+        } catch (Exception e) {
+            if (e != null)
+                Log.i("gongpengming", "log Exception=" + e.getMessage());
+        }
+    }
+}

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


+ 8 - 0
WeiChat/src/main/res/drawable/shape_qzone_head_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <stroke
+        android:width="2dp"
+        android:color="@color/white"></stroke>
+</shape>

+ 4 - 2
WeiChat/src/main/res/layout/activity_common_docui.xml

@@ -6,11 +6,13 @@
     android:orientation="vertical">
 
     <com.xzjmyk.pm.activity.ui.erp.view.CustomerScrollView
+        android:id="@+id/common_docui_sv"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_weight="1"
         android:fillViewport="true"
-        android:scrollbars="none">
+        android:scrollbars="none"
+        android:visibility="gone">
 
         <LinearLayout
             android:layout_width="match_parent"
@@ -122,7 +124,7 @@
         android:orientation="horizontal"
         android:background="@color/bg_main"
         android:paddingBottom="5dp"
-        android:visibility="visible"
+        android:visibility="gone"
        >
 
         <LinearLayout

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

@@ -49,14 +49,14 @@
             android:text="不显示位置"
             android:textSize="@dimen/text_main"
             android:textColor="@color/titleBlue"
-            android:visibility="gone"
+            android:visibility="visible"
                />
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
             android:layout_marginTop="8dp"
             android:background="@color/light_gray"
-            android:visibility="gone"/>
+            android:visibility="visible"/>
         <TextView
             android:id="@+id/location_city_tv"
             android:layout_width="match_parent"

+ 22 - 30
WeiChat/src/main/res/layout/activity_send_shuoshuo.xml

@@ -1,7 +1,7 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/white">
+    android:background="#ebe9e9">
 
     <ScrollView
         android:id="@+id/scroll_view"
@@ -13,40 +13,28 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="vertical">
-
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="10dp"
+                android:background="#ebe9e9"/>
             <EditText
                 android:id="@+id/text_edit"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
-                android:background="@drawable/full_edit_bg"
+                android:background="@color/white"
                 android:gravity="top"
                 android:hint="@string/circle_now_think"
                 android:inputType="textMultiLine"
-                android:minHeight="150dp"
+                android:minHeight="250dp"
                 android:padding="10dp"
                 android:textColor="@color/black"
-                android:textColorHint="@color/grey"
+                android:textColorHint="#969695"
                 android:textSize="16sp" />
-
-            <TextView
-                android:id="@+id/select_img_prompt_tv"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="3dp"
-                android:layout_marginLeft="10dp"
-                android:layout_marginTop="10dp"
-                android:shadowColor="@color/white"
-                android:shadowRadius="1"
-                android:text="@string/circle_select_image"
-                android:textColor="@color/gray"
-                android:textSize="14sp" />
-
             <LinearLayout
                 android:id="@+id/select_img_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:background="@color/light_gray"
+                android:background="@color/white"
                 android:padding="10dp">
 
                 <com.xzjmyk.pm.activity.view.MyGridView
@@ -61,20 +49,28 @@
                     android:verticalSpacing="3dp" />
             </LinearLayout>
 
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="10dp"
+                android:background="#ebe9e9"
+                android:textColor="@color/gray"/>
             <RelativeLayout
                 android:id="@+id/location_rl"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:clickable="true"
-                android:padding="10dp">
+                android:padding="10dp"
+                android:background="@color/white">
                 <ImageView
                     android:id="@+id/location_iv"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:src="@drawable/icon_location"
+                    android:src="@drawable/icon_dingwei1_nor"
                     android:layout_marginTop="5dp"
                     android:layout_marginLeft="5dp"
                     android:layout_marginRight="10dp"
+                    android:layout_centerVertical="true"
                     />
                 <TextView
                     android:id="@+id/location_tv"
@@ -82,7 +78,7 @@
                     android:layout_height="match_parent"
                     android:gravity="center"
                     android:text="所在位置"
-                    android:textColor="@color/text_hine"
+                    android:textColor="#575757"
                     android:textSize="@dimen/text_main"
                     android:paddingRight="20dp"
                     android:layout_toRightOf="@+id/location_iv"/>
@@ -93,11 +89,6 @@
                     android:src="@drawable/oa_next" />
             </RelativeLayout>
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="20px"
-                android:background="@color/item_line"
-                android:visibility="gone"/>
 
             <RelativeLayout
                 android:id="@+id/display_rl"
@@ -138,7 +129,8 @@
         android:baselineAligned="false"
         android:gravity="bottom"
         android:orientation="vertical"
-        android:padding="10dp">
+        android:padding="10dp"
+        android:visibility="gone">
 
         <Button
             android:id="@+id/release_btn"

+ 11 - 5
WeiChat/src/main/res/layout/activity_send_videohi.xml

@@ -36,7 +36,7 @@
 
                 <include
                     android:id="@+id/add_video_item"
-                    layout="@layout/layout_circle_add_more_item" />
+                    layout="@layout/layout_circle_add_video_item" />
             </LinearLayout>
             <EditText
                 android:id="@+id/text_edit"
@@ -46,13 +46,17 @@
                 android:background="#262626"
                 android:gravity="top"
                 android:inputType="textMultiLine"
-                android:minHeight="150dp"
+                android:minHeight="200dp"
                 android:padding="10dp"
                 android:textColor="@color/white"
                 android:textSize="16sp"
                 android:textColorHint="@color/white"
                 android:hint="说点什么吧.."/>
 
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/white"/>
             <RelativeLayout
                 android:id="@+id/location_rl"
                 android:layout_width="match_parent"
@@ -65,11 +69,12 @@
                     android:id="@+id/location_iv"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:src="@drawable/icon_location"
+                    android:src="@drawable/icon_dingwei1_nor"
                     android:layout_marginTop="5dp"
                     android:layout_marginLeft="5dp"
                     android:layout_marginRight="10dp"
                     android:background="@color/white"
+                    android:layout_centerVertical="true"
                     />
                 <TextView
                     android:id="@+id/location_tv"
@@ -85,7 +90,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_alignParentRight="true"
-                    android:src="@drawable/oa_next"
+                    android:src="@drawable/icon_zhankai_nor"
                     android:background="@color/white"/>
             </RelativeLayout>
         </LinearLayout>
@@ -102,7 +107,8 @@
         android:baselineAligned="false"
         android:gravity="bottom"
         android:orientation="vertical"
-        android:padding="10dp" >
+        android:padding="10dp"
+        android:visibility="gone">
 
         <Button
             android:id="@+id/release_btn"

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

@@ -183,7 +183,8 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:paddingLeft="6dp"
-                android:paddingRight="6dp">
+                android:paddingRight="6dp"
+                android:visibility="gone">
 
                 <TextView
                     android:id="@+id/praise_count_tv"

+ 3 - 1
WeiChat/src/main/res/layout/item_location_ls.xml

@@ -2,7 +2,9 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:padding="5dp">
+    android:padding="5dp"
+    android:background="@drawable/selector_me_menu_item_bg"
+    >
 
     <TextView
         android:id="@+id/name_tv"

+ 13 - 10
WeiChat/src/main/res/layout/layout_circle_add_more_item.xml

@@ -1,30 +1,32 @@
 <com.xzjmyk.pm.activity.view.SquareCenterFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent" >
+    android:layout_height="match_parent"
+    >
 
     <ImageView
         android:id="@+id/image_view"
-        android:layout_width="match_parent"
-        android:layout_height="300dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
         android:contentDescription="@string/app_name"
         android:scaleType="centerCrop"
-        android:src="@drawable/circle_add_item_default_bg" />
+        android:src="@drawable/add_picture" />
 
     <FrameLayout
         android:id="@+id/float_layout"
-        android:layout_width="50dp"
-        android:layout_height="50dp"
+        android:layout_width="60dp"
+        android:layout_height="60dp"
         android:src="@drawable/circle_add_float_view_bg"
         android:layout_gravity="center">
 
         <ImageView
             android:id="@+id/icon_image_view"
-            android:layout_width="35dp"
-            android:layout_height="35dp"
+            android:layout_width="60dp"
+            android:layout_height="60dp"
             android:layout_gravity="top|center_horizontal"
             android:paddingTop="20dp"
-            android:contentDescription="@string/app_name" />
+            android:contentDescription="@string/app_name"
+            android:visibility="gone"/>
 
         <TextView
             android:id="@+id/text_tv"
@@ -35,7 +37,8 @@
             android:layout_marginBottom="5dp"
             android:textColor="@color/gray"
             android:textSize="12sp"
-            android:layout_marginTop="5dp"/>
+            android:layout_marginTop="5dp"
+            android:visibility="gone"/>
     </FrameLayout>
 
 </com.xzjmyk.pm.activity.view.SquareCenterFrameLayout>

+ 36 - 0
WeiChat/src/main/res/layout/layout_circle_add_video_item.xml

@@ -0,0 +1,36 @@
+<com.xzjmyk.pm.activity.view.SquareCenterFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" >
+    <ImageView
+        android:id="@+id/image_view"
+        android:layout_width="match_parent"
+        android:layout_height="300dp"
+        android:contentDescription="@string/app_name"
+        android:scaleType="centerCrop"
+        android:src="@drawable/circle_add_item_default_bg" />
+    <FrameLayout
+        android:id="@+id/float_layout"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:src="@drawable/circle_add_float_view_bg"
+        android:layout_gravity="center">
+        <ImageView
+            android:id="@+id/icon_image_view"
+            android:layout_width="35dp"
+            android:layout_height="35dp"
+            android:layout_gravity="top|center_horizontal"
+            android:paddingTop="20dp"
+            android:contentDescription="@string/app_name" />
+        <TextView
+            android:id="@+id/text_tv"
+            android:singleLine="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom|center_horizontal"
+            android:layout_marginBottom="5dp"
+            android:textColor="@color/gray"
+            android:textSize="12sp"
+            android:layout_marginTop="5dp"/>
+    </FrameLayout>
+</com.xzjmyk.pm.activity.view.SquareCenterFrameLayout>

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

@@ -47,8 +47,8 @@
         android:layout_width="match_parent"
         android:layout_height="45dp"
         android:gravity="center"
+        android:textColor="@color/black"
         android:text="取消"
-        android:textColor="@color/done_approval"
         android:textSize="15sp"/>
 
 </LinearLayout>

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

@@ -35,7 +35,6 @@
             android:id="@+id/body_tv"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginLeft="5dp"
             android:layout_marginTop="8dp"
             android:background="@drawable/text_click_bg"
             android:text="ss"
@@ -142,10 +141,12 @@
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"
                     android:drawableLeft="@drawable/ic_zan_friend"
+                    android:paddingLeft="5dp"
+                    android:drawablePadding="5dp"
                     android:paddingBottom="2dp"
                     android:paddingTop="10dp"
                     android:textSize="@dimen/text_min"
-                    android:text=""
+                    android:text="ss"
                     />
 
                 <View

+ 4 - 1
WeiChat/src/main/res/layout/space_cover_view.xml

@@ -45,7 +45,10 @@
             android:layout_alignParentRight="true"
             android:layout_marginRight="10dp"
             android:contentDescription="@string/app_name"
-            android:src="@drawable/avatar_normal" />
+            android:src="@drawable/avatar_normal"
+            android:background="@drawable/shape_qzone_head_bg"
+            android:padding="2dp"
+            />
         <TextView
             android:id="@+id/qzone_name"
             android:layout_width="wrap_content"

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

@@ -5,7 +5,7 @@
 
     <item
         android:id="@+id/send_qzone"
-        android:icon="@drawable/qzone_camera"
+        android:icon="@drawable/icon_camera_nor"
         android:title="发动态"
         app:showAsAction="ifRoom"/>
 

+ 12 - 0
WeiChat/src/main/res/menu/send_qzone.xml

@@ -0,0 +1,12 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:context="com.xzjmyk.pm.activity.MainActivity" >
+
+    <item
+        android:id="@+id/send_qzone"
+        android:title="@string/send"
+        app:showAsAction="ifRoom" />
+
+
+</menu>

+ 2 - 2
WeiChat/src/main/res/values/strings.xml

@@ -208,7 +208,7 @@
     <string name="chat_loc">位置</string>
     <string name="chat_file">文件</string>
     <string name="chat_card">名片</string>
-    <string name="send">发送</string>
+    <string name="send">发送 </string>
     <string name="motalk_voice_chat_tip_1">按住说话</string>
     <string name="motalk_voice_chat_tip_2">松开发送</string>
     <string name="motalk_voice_chat_tip_3">上滑取消发送</string>
@@ -277,7 +277,7 @@
 
     <!-- 商务圈 -->
     <string name="send_myspace">发表到朋友圈</string>
-    <string name="send_text">发文字</string>
+    <string name="send_text">发文字</string>
     <string name="send_image">发图片</string>
     <string name="send_audio">发语音</string>
     <string name="send_video">发视频</string>