Browse Source

修改审批流代码备份

Bitliker 9 years ago
parent
commit
e5e0c46cff
24 changed files with 468 additions and 323 deletions
  1. 3 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java
  2. 4 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/account/DataDownloadActivity.java
  3. 18 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/ProcessB2BActivity.java
  4. 25 22
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MissionActivity.java
  5. 3 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  6. 9 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAMainActivity.java
  7. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/WorkActivity.java
  8. 110 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OAAdapter.java
  9. 54 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/OAModel.java
  10. 13 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/WorkModel.java
  11. 33 18
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/OAPresenter.java
  12. 12 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/WorkPresenter.java
  13. 20 22
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/ListUtils.java
  14. 95 88
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/LogUtil.java
  15. 8 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/oa/AutoErpSigninUitl.java
  16. 1 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/oa/OAConfig.java
  17. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/oa/OAHttpUtil.java
  18. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/oa/http/OAHttpHelper.java
  19. 3 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/calender/month/MonthAdapter.java
  20. 5 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/calender/month/MonthCalendarView.java
  21. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/wxapi/ApiPlatform.java
  22. 1 2
      WeiChat/src/main/res/layout/fragment_me.xml
  23. 3 2
      WeiChat/src/main/res/layout/item_oa.xml
  24. 41 118
      WeiChat/src/main/res/layout/item_oa_list.xml

+ 3 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/WorkModelDao.java

@@ -211,23 +211,20 @@ public class WorkModelDao {
     private WorkModel getWorkModel(Cursor c, boolean showAllSignin) {
         if (c == null)
             return null;
-
+        int id = c.getInt(c.getColumnIndex("id"));//编号
         String workStart = c.getString(c.getColumnIndex("workStart"));//上班开始时间
         String workTime = c.getString(c.getColumnIndex("workTime"));//上班时间
         String workend = c.getString(c.getColumnIndex("workend")); //上班计算结束时间
         String workSignin = c.getString(c.getColumnIndex("workSignin")); //上班签到时间
         String workAllegedly = c.getString(c.getColumnIndex("workAllegedly"));//下班计算开始时间
         boolean workAlarm = c.getInt(c.getColumnIndex("workAlarm")) > 0;//下班时间
-
         String offStart = c.getString(c.getColumnIndex("offStart"));//下班结束时间
         String offTime = c.getString(c.getColumnIndex("offTime"));//下班签到时间
         String offend = c.getString(c.getColumnIndex("offend"));//下班签到时间
         String offSignin = c.getString(c.getColumnIndex("offSignin"));//下班签到时间
         String offAllegedly = c.getString(c.getColumnIndex("offAllegedly"));//下班签到时间
         boolean offAlarm = c.getInt(c.getColumnIndex("offAlarm")) > 0;//下班提醒
-
         boolean leaveAlarm = c.getInt(c.getColumnIndex("leaveAlarm")) > 0;//离开提醒
-
         if (StringUtils.isEmpty(workStart) || StringUtils.isEmpty(workTime) || StringUtils.isEmpty(workend) ||
                 StringUtils.isEmpty(offStart) || StringUtils.isEmpty(offTime) || StringUtils.isEmpty(offend))
             return null;
@@ -238,7 +235,7 @@ public class WorkModelDao {
             if (!StringUtils.isEmpty(offSignin) && offSignin.compareTo(offTime) < 0)//早退  打卡时间<下班时间
                 offSignin = "";
         }
-        return new WorkModel(workStart, workTime,
+        return new WorkModel(id, workStart, workTime,
                 workend, workSignin,
                 workAllegedly,
                 workAlarm,
@@ -253,7 +250,7 @@ public class WorkModelDao {
     }
 
     private String[] getColumns() {
-        return new String[]{"workStart", "workTime", "workend", "workSignin", "workAllegedly", "workAlarm", "offStart"
+        return new String[]{"id", "workStart", "workTime", "workend", "workSignin", "workAllegedly", "workAlarm", "offStart"
                 , "offTime", "offend", "offSignin", "offAllegedly", "offAlarm", "leaveAlarm"};
     }
 

+ 4 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/account/DataDownloadActivity.java

@@ -43,6 +43,8 @@ import com.xzjmyk.pm.activity.volley.ObjectResult;
 import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
+import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
+import com.xzjmyk.pm.activity.wxapi.ApiUtils;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -163,7 +165,8 @@ public class DataDownloadActivity extends BaseActivity {
     private void startDownload() {
         mDataLoadView.showLoading();
         //company_download_status=STATUS_SUCCESS;
-        if (company_download_status != STATUS_SUCCESS) {
+        boolean isB2b= ApiUtils.getApiModel() instanceof ApiPlatform;
+        if (!isB2b&&company_download_status != STATUS_SUCCESS) {
             company_download_status = STATUS_NO_RESULT;
             downloadCompanysContact();//下载企业架构数据
         }

+ 18 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/ProcessB2BActivity.java

@@ -94,11 +94,25 @@ public class ProcessB2BActivity extends BaseActivity implements View.OnClickList
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        if (data == null) return;
+        LogUtil.i("requestCode == " + requestCode);
+        LogUtil.i("resultCode == " + resultCode);
+        if (requestCode == 0x322) {
+            loadProcesstoAlreadyDo(1);
+            return;
+        } else if (requestCode == 0x321) {
+            loadProcessToDo(1);
+        }
+        if (data == null) {
+            LogUtil.i("data == null");
+            return;
+        }
         String delete_succeed = data.getStringExtra("delete_succeed");
+        LogUtil.i("delete_succeed == " + delete_succeed);
         if (!StringUtils.isEmpty(delete_succeed) && delete_succeed.equals("delete_succeed")) {
-
+            LogUtil.i("requestCode == " + requestCode);
+            LogUtil.i("resultCode == " + resultCode);
             if (requestCode == 0x322 && resultCode == PlatWDdetailyActivity.DELETE_SUCCEED) {
+                LogUtil.i("进来第一个");
                 try {
                     arrayUn.remove(mPosition);
                     mAdapter.notifyDataSetChanged();
@@ -106,6 +120,7 @@ public class ProcessB2BActivity extends BaseActivity implements View.OnClickList
                     loadProcessToDo(page);
                 }
             } else if (requestCode == 0x321 && resultCode == 0x328) {
+                LogUtil.i("进来第二个");
                 try {
                     arrayRe.remove(mPosition);
                     mAdapter.notifyDataSetChanged();
@@ -443,7 +458,7 @@ public class ProcessB2BActivity extends BaseActivity implements View.OnClickList
 //                progressDialog.show();
                 tab_type = 3;
                 mAdapter = null;
-                mList.setMode(PullToRefreshBase.Mode.BOTH);
+                mList.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
                 tv_process_un.setSelected(false);
                 tv_process_already.setSelected(false);
                 tv_process_me.setSelected(true);
@@ -456,7 +471,6 @@ public class ProcessB2BActivity extends BaseActivity implements View.OnClickList
         }
     }
 
-
     private void loadProcessToDo(int page) {
         String url = ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getAuditTodo;
         Map<String, Object> params = new HashMap<>();

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

@@ -49,6 +49,8 @@ import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.MostLinearLayoutManager;
+import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
+import com.xzjmyk.pm.activity.wxapi.ApiUtils;
 
 import java.util.List;
 
@@ -146,7 +148,7 @@ public class MissionActivity extends OABaseActivity implements View.OnClickListe
     private void endActivity() {
         LocalBroadcastManager.getInstance(ct).unregisterReceiver(receiver);
         boolean isAuto = PreferenceUtils.getBoolean(AppConfig.AUTO_MISSION, false);
-        if (isAuto) {
+        if (ApiUtils.getApiModel() instanceof ApiPlatform || isAuto) {
             setResult(0x20);
             finish();
         } else {
@@ -476,43 +478,44 @@ public class MissionActivity extends OABaseActivity implements View.OnClickListe
      * @update by 2017/1/11
      */
     private void setEndTime(LatLng location, final double dis) {
-        Log.i("gongpengming", "dis=" + dis);
         getInstence().getDrivingRoute(MyApplication.getInstance().getBdLocationHelper().getLocation(), location,
                 new OnGetDrivingRouteResult() {
                     @Override
                     public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) {
-                        List<DrivingRouteLine> list = drivingRouteResult.getRouteLines();
-                        if (ListUtils.isEmpty(list)) {
-                            Log.i("gongpengming", "onGetDrivingRouteResult: isEmpty");
-                            if (dis != 0) {
-                                setVoisitTime((long) (dis / 3));
-                            } else
-                                setVoisitTime(800);
-                            return;
-                        }
-                        int minTime = 0;
-                        for (DrivingRouteLine e : list) {
-                            if (minTime == 0 || minTime > e.getDuration()) {
-                                minTime = e.getDuration();
+                        try {
+                            List<DrivingRouteLine> list = drivingRouteResult.getRouteLines();
+                            if (ListUtils.isEmpty(list)) {
+                                if (dis != 0) {
+                                    setVoisitTime((long) (dis / 3));
+                                } else
+                                    setVoisitTime(800);
+                                return;
                             }
-                        }
-                        setVoisitTime(minTime);
-                        Log.i("gongpengming", "最短时间为" + minTime);
+                            int minTime = 0;
+                            for (DrivingRouteLine e : list) {
+                                if (minTime == 0 || minTime > e.getDuration()) {
+                                    minTime = e.getDuration();
+                                }
+                            }
+                            setVoisitTime(minTime);
+                        } catch (Exception e) {
 
+                        }
                     }
                 });
 
     }
 
     /**
+     * 注意异常处理,由于是一个延迟的过程,可能出现在时间计算出来前删除该条数据
+     *
      * @param time 秒
      * @update by 2017/1/11
      */
-    private void setVoisitTime(long time) {
-        //TODO 修改通过经纬度获取地址,在通过地址获取路线
+    private void setVoisitTime(long time) throws Exception {
+        if (adapter == null || ListUtils.isEmpty(adapter.getModels()) || adapter.getModels().size() <= position)
+            return;
         String realTime = TimeUtils.f_long_2_str(System.currentTimeMillis() + (time * 1000));
-
-
         adapter.getModels().get(position).setVisitTime(realTime);
         adapter.notifyItemChanged(position);
     }

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

@@ -198,6 +198,9 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                             if (otherArray != null && otherArray.size() > 0) {
                                 otherInt.addAll(getDay(otherArray));
                             }
+                        } else {
+                            hasOther = false;
+                            chaneTAG(true);
                         }
                         loadSuccess();
                         if (mPullToRefreshScrollView.isRefreshing()) {

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

@@ -23,6 +23,7 @@ import com.xzjmyk.pm.activity.ui.erp.activity.PlatLeaveAddActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.TravelActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.WorkExtraActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.form.DataFormDetailActivity;
+import com.xzjmyk.pm.activity.ui.erp.adapter.oa.OAAdapter;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.OAModel;
 import com.xzjmyk.pm.activity.ui.erp.presenter.OAPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IOAView;
@@ -87,6 +88,7 @@ public class OAMainActivity extends OABaseActivity implements View.OnClickListen
     private boolean isB2b = false;
     private OAPresenter presenter;
     private EmptyLayout emptyLayout;
+    private OAAdapter mAdapter;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -137,6 +139,7 @@ public class OAMainActivity extends OABaseActivity implements View.OnClickListen
         findViewById(R.id.outtask_tv).setOnClickListener(this);
         findViewById(R.id.overtime_tv).setOnClickListener(this);
         findViewById(R.id.ok_scale).setOnClickListener(this);//筛选
+
         oamain_pull_sv.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
         oamain_pull_sv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ScrollView>() {
             @Override
@@ -274,12 +277,14 @@ public class OAMainActivity extends OABaseActivity implements View.OnClickListen
     @Override
     public void showModel(List<OAModel> models) {
         if (ListUtils.isEmpty(models)) {
-            LogUtil.d("这个是空的");
             emptyLayout.showEmpty();
         } else {
-            for (OAModel e : models) {
-                LogUtil.d(e.getTitle());
-                LogUtil.d("___________________-");
+            if (mAdapter == null) {
+                mAdapter = new OAAdapter(ct, models);
+                listview.setAdapter(mAdapter);
+            } else {
+                mAdapter.setModels(models);
+                mAdapter.notifyDataSetChanged();
             }
         }
     }

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

@@ -310,7 +310,7 @@ public class WorkActivity extends OABaseActivity implements View.OnClickListener
 
     private void initPopupWindow() {
         View viewContext = LayoutInflater.from(ct).inflate(R.layout.pop_work_activity, null);
-        if (!isAdmin &&!platform) {
+        if (!isAdmin) {
             viewContext.findViewById(R.id.super_setting_tv).setVisibility(View.GONE);
             viewContext.findViewById(R.id.work_setting_tv).setVisibility(View.GONE);
             viewContext.findViewById(R.id.office_addr_setting_tv).setVisibility(View.GONE);

+ 110 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/OAAdapter.java

@@ -0,0 +1,110 @@
+package com.xzjmyk.pm.activity.ui.erp.adapter.oa;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.model.oa.OAModel;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+
+import java.util.List;
+
+/**
+ * Created by Bitliker on 2017/4/11.
+ */
+
+public class OAAdapter extends BaseAdapter {
+    private Context ct;
+    private List<OAModel> models;
+
+    public OAAdapter(Context ct, List<OAModel> models) {
+        this.ct = ct;
+        this.models = models;
+    }
+
+    public void setModels(List<OAModel> models) {
+        this.models = models;
+
+    }
+
+    public List<OAModel> getModels() {
+        return models;
+    }
+
+    @Override
+    public int getCount() {
+        return ListUtils.isEmpty(models) ? 0 : models.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return models.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder holder = null;
+        if (convertView == null) {
+            holder = new ViewHolder();
+            convertView = LayoutInflater.from(ct).inflate(R.layout.item_oa_list, null);
+            holder.status_img = (ImageView) convertView.findViewById(R.id.status_img);
+            holder.title_tv = (TextView) convertView.findViewById(R.id.title_tv);
+            holder.status_tv = (TextView) convertView.findViewById(R.id.status_tv);
+            holder.address_tv = (TextView) convertView.findViewById(R.id.address_tv);
+            holder.handler_tv = (TextView) convertView.findViewById(R.id.handler_tv);
+            convertView.setTag(holder);
+        } else {
+            holder = (ViewHolder) convertView.getTag();
+        }
+        try {
+            bindView(position, holder);
+        } catch (Exception e) {
+        }
+        return convertView;
+    }
+
+    private void bindView(int position, ViewHolder holder) throws Exception {
+        OAModel model = models.get(position);
+        holder.handler_tv.setVisibility(!model.isTask() ? View.VISIBLE : View.GONE);
+        holder.title_tv.setText(model.getTitle2Remark());
+        holder.address_tv.setText(model.getAddress2Time());
+
+        //当前有三个类型,任务日程(status_tv) 拜访报告(status_img) 外勤计划(status_img)
+        String status = model.getStatus();
+        String handler = model.isMe() ? "" : model.getHandler();
+        holder.status_tv.setVisibility(!model.isMission() ? View.VISIBLE : View.GONE);
+        holder.status_img.setVisibility(model.isMission() ? View.VISIBLE : View.GONE);
+        if (model.isTask()) {
+            holder.status_tv.setText(status);
+        } else if (model.isMission()) {
+            int recId = -1;
+            handler += model.getTime2Str("HH:mm");
+            if (status.equals("签退") || (model.isTadayBefore() && model.getStartdate() > 0 && model.getEnddate() > 0))
+                recId = R.drawable.mission_plan_ok;
+            else recId = R.drawable.mission_plan_lose;
+            if (recId != -1) holder.status_img.setImageResource(recId);
+            else holder.status_img.setVisibility(View.GONE);
+        } else if (model.isVisitRecord()) {
+            holder.status_tv.setText("已拜访");
+        }
+        holder.handler_tv.setText(handler);
+    }
+
+
+    class ViewHolder {
+        ImageView status_img;
+        TextView title_tv, status_tv, address_tv, handler_tv;
+    }
+
+
+}

+ 54 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/OAModel.java

@@ -1,6 +1,7 @@
 package com.xzjmyk.pm.activity.ui.erp.model.oa;
 
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.util.TimeUtils;
 
 import java.util.Calendar;
 
@@ -9,6 +10,10 @@ import java.util.Calendar;
  */
 
 public class OAModel {
+    //关于OA类型常量表
+    public static final int OA_TYPE_TASK = 0x11;//任务,日程
+    public static final int OA_TYPE_MISSION = 0x12;//外勤单
+    public static final int OA_TYPE_RECORD = 0x13;//拜访报告
 
     private boolean isMe;//是否是我的单,可能是下属的
     private int type;//类型
@@ -56,7 +61,7 @@ public class OAModel {
     }
 
     public String getTitle() {
-        return title;
+        return StringUtils.isEmpty(title) ? "" : title;
     }
 
     public void setTitle(String title) {
@@ -64,7 +69,7 @@ public class OAModel {
     }
 
     public String getRemark() {
-        return remark;
+        return StringUtils.isEmpty(remark) ? "" : remark;
     }
 
     public void setRemark(String remark) {
@@ -72,7 +77,7 @@ public class OAModel {
     }
 
     public String getAddress() {
-        return address;
+        return StringUtils.isEmpty(address) ? "" : address;
     }
 
     public void setAddress(String address) {
@@ -87,19 +92,11 @@ public class OAModel {
         this.recorder = recorder;
     }
 
-    public String getStatus() {
-        return status;
-    }
 
     public void setStatus(String status) {
         this.status = status;
     }
 
-    public String getHandler() {
-        if (StringUtils.isEmpty(handler))
-            return recorder;
-        return handler;
-    }
 
     public void setHandler(String handler) {
         this.handler = handler;
@@ -121,6 +118,42 @@ public class OAModel {
         this.type = type;
     }
 
+    //在Oa界面适配器中使用的
+    public boolean isTask() {
+        return type == OA_TYPE_TASK;
+    }
+
+    public boolean isMission() {
+        return type == OA_TYPE_MISSION;
+    }
+
+    public boolean isVisitRecord() {
+        return type == OA_TYPE_RECORD;
+    }
+
+    public String getTitle2Remark() {
+        return getTitle() + "  " + getRemark();
+    }
+
+    public String getStatus() {
+        return StringUtils.isEmpty(status) ? "" : status;
+    }
+
+
+    public String getAddress2Time() {
+        return isTask() ? getTime2Str("yyyy-MM-dd HH:mm") : getAddress();
+    }
+
+    public boolean isTadayBefore() {
+        return true;
+    }
+
+
+    public String getHandler() {
+        if (StringUtils.isEmpty(handler))
+            return StringUtils.isEmpty(recorder) ? "" : recorder;
+        return handler;
+    }
 
     public int getDay() {
         Calendar c = Calendar.getInstance();
@@ -128,6 +161,16 @@ public class OAModel {
         return c.get(Calendar.DAY_OF_MONTH);
     }
 
+    public String getTime2Str(String formart) {
+        StringBuilder builder = new StringBuilder(" ");
+        if (startdate > 0) {
+            builder.append(TimeUtils.long2str(startdate, formart));
+            if (enddate > startdate)
+                builder.append("  " + TimeUtils.long2str(enddate, formart));
+        }
+        return builder.toString();
+    }
+
     private long getTime(long... times) {
         if (times == null) return 0;
         for (long e : times) if (e != 0) return e;

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

@@ -8,6 +8,7 @@ import android.os.Parcelable;
  * Created by Bitliker on 2016/12/12.
  */
 public class WorkModel implements Parcelable {
+    private int id;//编号
     private String workStart;//上班开始时间
     private String workTime;//上班时间
     private String workend; //上班计算结束时间
@@ -31,7 +32,7 @@ public class WorkModel implements Parcelable {
 
     }
 
-    public WorkModel(String workStart, String workTime,
+    public WorkModel(int id, String workStart, String workTime,
                      String workend, String workSignin,
                      String workAllegedly,
                      boolean workAlarm,
@@ -43,6 +44,7 @@ public class WorkModel implements Parcelable {
                      boolean offAlarm,
                      boolean leaveAlarm
     ) {
+        this.id = id;
         this.workStart = workStart;
         this.workTime = workTime;
         this.workend = workend;
@@ -59,6 +61,7 @@ public class WorkModel implements Parcelable {
     }
 
     protected WorkModel(Parcel in) {
+        id = in.readInt();
         workStart = in.readString();
         workTime = in.readString();
         workend = in.readString();
@@ -77,6 +80,7 @@ public class WorkModel implements Parcelable {
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
+        dest.writeInt(id);
         dest.writeString(workStart);
         dest.writeString(workTime);
         dest.writeString(workend);
@@ -110,6 +114,14 @@ public class WorkModel implements Parcelable {
         }
     };
 
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int noId) {
+        this.id = noId;
+    }
+
     public String getWorkStart() {
         return workStart;
     }

+ 33 - 18
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/OAPresenter.java

@@ -80,11 +80,13 @@ public class OAPresenter implements OnHttpResultListener {
             loadSubord();
     }
 
+    /*点击日期,对数据进行筛选*/
     public void selectDate(long date) {
         curDate = date;
-        showModel();
+        showModel(false);
     }
 
+    /*更换月份,获取数据*/
     public void loadSchedule(long date) {
         curDate = date;
         loadSchedule();
@@ -99,12 +101,12 @@ public class OAPresenter implements OnHttpResultListener {
         String url = isB2b ? ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().workSchedule :
                 "mobile/crm/gettaskscheduleandvisitplanmsg.action";
         param.put("date", TimeUtils.long2str(curDate, "yyyyMM"));
-        Request request= new Request.Bulider()
+        Request request = new Request.Bulider()
                 .setMode(Request.Mode.GET)
                 .setParam(param)
                 .setUrl(url)
                 .setWhat(LOAD_SCHEDULE).bulid();
-        OAHttpHelper.getInstance().requestHttp(request,this);
+        OAHttpHelper.getInstance().requestHttp(request, this);
     }
 
 
@@ -113,12 +115,12 @@ public class OAPresenter implements OnHttpResultListener {
         ioaView.showLoading();
         Map<String, Object> param = new HashMap<>();
         param.put("emcode", CommonUtil.getEmcode());
-        Request request= new Request.Bulider()
+        Request request = new Request.Bulider()
                 .setMode(Request.Mode.GET)
                 .setParam(param)
                 .setUrl("mobile/crm/getstaffmsg.action")
                 .setWhat(LOAD_SUBORD).bulid();
-        OAHttpHelper.getInstance().requestHttp(request,this);
+        OAHttpHelper.getInstance().requestHttp(request, this);
     }
 
     @Override
@@ -136,7 +138,7 @@ public class OAPresenter implements OnHttpResultListener {
 
 
     @Override
-    public void error(int what,   String message, Bundle bundle) {
+    public void error(int what, String message, Bundle bundle) {
         ioaView.dimssLoading();
         handlerError(what, message, bundle);
     }
@@ -157,7 +159,7 @@ public class OAPresenter implements OnHttpResultListener {
             case LOAD_SCHEDULE:
                 meModels = util.getModelByJSON(object, "me", true);
                 otherModels = util.getModelByJSON(object, "other", false);
-                showModel();
+                showModel(true);
                 break;
             case LOAD_SUBORD:
                 if (ListUtils.isEmpty(OACheckUtil.getJsonArray(object, "datas")))
@@ -167,15 +169,19 @@ public class OAPresenter implements OnHttpResultListener {
         }
     }
 
+    /*选择标签,更换下属和自己*/
     private void selectTag(int type) {
         newSelectType = type;
         ioaView.selectTag(type);
-        showModel();
+        showModel(true);
     }
 
-    private void showModel() {
+    private void showModel(boolean changeTaskList) {
         try {
-            showModel(newSelectType == 1 ? otherModels : meModels);
+            List<OAModel> models = newSelectType == 1 ? otherModels : meModels;
+            if (changeTaskList)
+                setTaskList(models);
+            showModel(models);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -187,29 +193,38 @@ public class OAPresenter implements OnHttpResultListener {
             ioaView.showModel(models);
             return;
         }
+
         Calendar c = Calendar.getInstance();
         c.setTimeInMillis(curDate);
         int selectDay = c.get(Calendar.DAY_OF_MONTH);
         List<OAModel> showModels = new ArrayList<>();
         int allNum = 0, okNum = 0, notNum = 0;
-        List<Integer> integers = new ArrayList<>();
         for (OAModel e : models) {
-            int day = e.getDay();
-            integers.add(day);
-            if (selectDay == day) {
+            if (selectDay == e.getDay()) {
                 showModels.add(e);
                 allNum++;
-                completionRate(okNum, notNum, e);
+                if (isOkNull(e))
+                    okNum++;
+                else notNum++;
             }
         }
         ioaView.setCompletionNum(allNum, okNum, notNum);
-        ioaView.setTaskList(integers);
         ioaView.showModel(showModels);
     }
 
-    /*计算已完成和未完成*/
-    private void completionRate(int okNum, int notNum, OAModel e) {
+    /*当更换下属和自己、和下拉数据时候调用*/
+    private void setTaskList(List<OAModel> models) {
+        List<Integer> integers = new ArrayList<>();
+        for (OAModel e : models) {
+            int day = e.getDay();
+            integers.add(day);
+        }
+        ioaView.setTaskList(integers);
+    }
 
+    /*计算已完成和未完成*/
+    private boolean isOkNull(OAModel e) {
+        return false;
     }
 
 }

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

@@ -39,6 +39,8 @@ import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
 import com.xzjmyk.pm.activity.wxapi.ApiUtils;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -56,7 +58,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
     private final int LOAD_MAC = 0x14;
     private final int SIGNING = 0x15;//签到
     private final int LOAD_WORK_SET = 0x16;//获取考勤设置
-    private double distance;
+    private double distance = -1;
 
     //本地位置
     private double longitude;
@@ -208,7 +210,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         loaction = MyApplication.getInstance().getBdLocationHelper().getName();
         address = MyApplication.getInstance().getBdLocationHelper().getAddress();
         if (iWorkView == null) return;
-        distance = 0;
+        distance = -1;
         iWorkView.showDistance(getDistance());
         iWorkView.showLocation(address);
 
@@ -223,7 +225,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
                         new LatLng(b.getLocation().longitude, b.getLocation().latitude)
                         , new LatLng(latitude, longitude));
                 if (StringUtils.isEmpty(dis)) continue;
-                if (distance == 0 || distance > Double.valueOf(dis)) {
+                if (distance == -1 || distance > Double.valueOf(dis)) {
                     distance = Double.valueOf(dis);
                     companyLocation = b;
                 }
@@ -378,6 +380,12 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
             WorkModelDao.getInstance().createOrUpdata(models, longTime);
         }
         List<WorkModel> chche = WorkModelDao.getInstance().query(true, longTime);
+        Collections.sort(chche, new Comparator<WorkModel>() {
+            @Override
+            public int compare(WorkModel lhs, WorkModel rhs) {
+                return lhs.getId() - rhs.getId();
+            }
+        });
         iWorkView.showModel(isFree, chche);
         iWorkView.dimssLoading();
     }
@@ -540,7 +548,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         longitude = poi.location.longitude;
         if (iWorkView == null) return;
         iWorkView.showLocation(address);
-        distance = 0;
+        distance = -1;
         iWorkView.showDistance(getDistance());
     }
 

+ 20 - 22
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/ListUtils.java

@@ -1,15 +1,13 @@
 package com.xzjmyk.pm.activity.ui.erp.util;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import android.text.TextUtils;
 
-import org.json.JSONArray;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * List Utils
- * 
+ *
  * @author <a href="http://www.trinea.cn" target="_blank">Trinea</a> 2011-7-22
  */
 public class ListUtils {
@@ -23,13 +21,13 @@ public class ListUtils {
 
     /**
      * get size of list
-     * 
+     *
      * <pre>
      * getSize(null)   =   0;
      * getSize({})     =   0;
      * getSize({1})    =   1;
      * </pre>
-     * 
+     *
      * @param <V>
      * @param sourceList
      * @return if list is null or empty, return 0, else return {@link List#size()}.
@@ -40,13 +38,13 @@ public class ListUtils {
 
     /**
      * is null or its size is 0
-     * 
+     *
      * <pre>
      * isEmpty(null)   =   true;
      * isEmpty({})     =   true;
      * isEmpty({1})    =   false;
      * </pre>
-     * 
+     *
      * @param <V>
      * @param sourceList
      * @return if list is null or its size is 0, return true, else return false.
@@ -57,14 +55,14 @@ public class ListUtils {
 
     /**
      * compare two list
-     * 
+     *
      * <pre>
      * isEquals(null, null) = true;
      * isEquals(new ArrayList&lt;String&gt;(), null) = false;
      * isEquals(null, new ArrayList&lt;String&gt;()) = false;
      * isEquals(new ArrayList&lt;String&gt;(), new ArrayList&lt;String&gt;()) = true;
      * </pre>
-     * 
+     *
      * @param <V>
      * @param actual
      * @param expected
@@ -91,13 +89,13 @@ public class ListUtils {
 
     /**
      * join list to string, separator is ","
-     * 
+     *
      * <pre>
      * join(null)      =   "";
      * join({})        =   "";
      * join({a,b})     =   "a,b";
      * </pre>
-     * 
+     *
      * @param list
      * @return join list to string, separator is ",". if list is empty, return ""
      */
@@ -107,14 +105,14 @@ public class ListUtils {
 
     /**
      * join list to string
-     * 
+     *
      * <pre>
      * join(null, '#')     =   "";
      * join({}, '#')       =   "";
      * join({a,b,c}, ' ')  =   "abc";
      * join({a,b,c}, '#')  =   "a#b#c";
      * </pre>
-     * 
+     *
      * @param list
      * @param separator
      * @return join list to string. if list is empty, return ""
@@ -125,7 +123,7 @@ public class ListUtils {
 
     /**
      * join list to string. if separator is null, use {@link #DEFAULT_JOIN_SEPARATOR}
-     * 
+     *
      * <pre>
      * join(null, "#")     =   "";
      * join({}, "#$")      =   "";
@@ -134,7 +132,7 @@ public class ListUtils {
      * join({a,b,c}, "#")  =   "a#b#c";
      * join({a,b,c}, "#$") =   "a#$b#$c";
      * </pre>
-     * 
+     *
      * @param list
      * @param separator
      * @return join list to string with separator. if list is empty, return ""
@@ -145,7 +143,7 @@ public class ListUtils {
 
     /**
      * add distinct entry to list
-     * 
+     *
      * @param <V>
      * @param sourceList
      * @param entry
@@ -157,7 +155,7 @@ public class ListUtils {
 
     /**
      * add all distinct entry to list1 from list2
-     * 
+     *
      * @param <V>
      * @param sourceList
      * @param entryList
@@ -179,7 +177,7 @@ public class ListUtils {
 
     /**
      * remove duplicate entries in list
-     * 
+     *
      * @param <V>
      * @param sourceList
      * @return the count of entries be removed
@@ -205,7 +203,7 @@ public class ListUtils {
 
     /**
      * add not null entry to list
-     * 
+     *
      * @param sourceList
      * @param value
      * @return <ul>
@@ -236,7 +234,7 @@ public class ListUtils {
 
     /**
      * invert list
-     * 
+     *
      * @param <V>
      * @param sourceList
      * @return

+ 95 - 88
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/LogUtil.java

@@ -7,92 +7,99 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 
 public class LogUtil {
-	private static final boolean DEBUG = true;
-	
-	public static void d(String TAG, String method, String msg) {
-		Log.d(TAG, "[" + method + "]" + msg);
-	}
-	
-	public static void d(String TAG, String msg){
-		if (DEBUG) {
-			Log.d(TAG, "[" + getFileLineMethod() + "]" + msg);
-		}
-	}
-	
-	public static void d(String msg){
-		if (DEBUG && !TextUtils.isEmpty(msg)) {
-			Log.d(_FILE_(), "[" + getLineMethod() + "]" + msg);
-		}
-	}
-	
-	public static void e(String msg){
-		if (DEBUG) {
-			Log.e(_FILE_(), getLineMethod() + msg);
-		}
-	}
-	
-	public static void e(String TAG, String msg){
-		if (DEBUG) {
-			Log.e(TAG, getLineMethod() + msg);
-		}
-	}
-
-	public static String getFileLineMethod() {
-		StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
-		StringBuffer toStringBuffer = new StringBuffer("[")
-				.append(traceElement.getFileName()).append(" | ")
-				.append(traceElement.getLineNumber()).append(" | ")
-				.append(traceElement.getMethodName()).append("]");
-		return toStringBuffer.toString();
-	}
-	
-	public static String getLineMethod() {
-		StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
-		StringBuffer toStringBuffer = new StringBuffer("[")
-				.append(traceElement.getLineNumber()).append(" | ")
-				.append(traceElement.getMethodName()).append("]");
-		return toStringBuffer.toString();
-	}
-
-	public static String _FILE_() {
-		StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
-		return traceElement.getFileName();
-	}
-
-	public static String _FUNC_() {
-		StackTraceElement traceElement = ((new Exception()).getStackTrace())[1];
-		return traceElement.getMethodName();
-	}
-
-	public static int _LINE_() {
-		StackTraceElement traceElement = ((new Exception()).getStackTrace())[1];
-		return traceElement.getLineNumber();
-	}
-
-	public static String _TIME_() {
-		Date now = new Date();
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
-		return sdf.format(now);
-	}
-	
-	public static void prinlnLongMsg(String TAG,String responseInfo){
-		if (responseInfo != null){
-			if (responseInfo.length() >=3000) {
-				Log.v(TAG, "sb.length = " + responseInfo.length());
-				int chunkCount = responseInfo.length() / 3000;     // integer division
-				for (int i = 0; i <= chunkCount; i++) {
-					int max = 3000 * (i + 1);
-					if (max >= responseInfo.length()) {
-						Log.v(TAG, "【chunk " + i + " of " + chunkCount + "】:" + responseInfo.substring(3000 * i));
-					} else {
-						Log.v(TAG, "【chunk " + i + " of " + chunkCount + "】:" + responseInfo.substring(3000 * i, max));
-					}
-				}
-			} else {
-				Log.v(TAG, "sb.length = " + responseInfo.length());
-				Log.v(TAG, responseInfo.toString());
-			}
-		}
-
-	}
+    private static final boolean DEBUG = true;
+
+    public static void d(String TAG, String method, String msg) {
+        Log.d(TAG, "[" + method + "]" + msg);
+    }
+
+    public static void d(String TAG, String msg) {
+        if (DEBUG) {
+            Log.d(TAG, "[" + getFileLineMethod() + "]" + msg);
+        }
+    }
+
+    public static void d(String msg) {
+        if (DEBUG && !TextUtils.isEmpty(msg)) {
+            Log.d(_FILE_(), "[" + getLineMethod() + "]" + msg);
+        }
+    }
+
+    public static void e(String msg) {
+        if (DEBUG) {
+            Log.e(_FILE_(), getLineMethod() + msg);
+        }
+    }
+
+    public static void e(String TAG, String msg) {
+        if (DEBUG) {
+            Log.e(TAG, getLineMethod() + msg);
+        }
+    }
+
+    public static void i(String msg) {
+        if (DEBUG) {
+            if (!StringUtils.isEmpty(msg))
+                Log.i("gongpengming", msg);
+        }
+    }
+
+    public static String getFileLineMethod() {
+        StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
+        StringBuffer toStringBuffer = new StringBuffer("[")
+                .append(traceElement.getFileName()).append(" | ")
+                .append(traceElement.getLineNumber()).append(" | ")
+                .append(traceElement.getMethodName()).append("]");
+        return toStringBuffer.toString();
+    }
+
+    public static String getLineMethod() {
+        StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
+        StringBuffer toStringBuffer = new StringBuffer("[")
+                .append(traceElement.getLineNumber()).append(" | ")
+                .append(traceElement.getMethodName()).append("]");
+        return toStringBuffer.toString();
+    }
+
+    public static String _FILE_() {
+        StackTraceElement traceElement = ((new Exception()).getStackTrace())[2];
+        return traceElement.getFileName();
+    }
+
+    public static String _FUNC_() {
+        StackTraceElement traceElement = ((new Exception()).getStackTrace())[1];
+        return traceElement.getMethodName();
+    }
+
+    public static int _LINE_() {
+        StackTraceElement traceElement = ((new Exception()).getStackTrace())[1];
+        return traceElement.getLineNumber();
+    }
+
+    public static String _TIME_() {
+        Date now = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+        return sdf.format(now);
+    }
+
+    public static void prinlnLongMsg(String TAG, String responseInfo) {
+        if (responseInfo != null) {
+            if (responseInfo.length() >= 3000) {
+                Log.v(TAG, "sb.length = " + responseInfo.length());
+                int chunkCount = responseInfo.length() / 3000;     // integer division
+                for (int i = 0; i <= chunkCount; i++) {
+                    int max = 3000 * (i + 1);
+                    if (max >= responseInfo.length()) {
+                        Log.v(TAG, "【chunk " + i + " of " + chunkCount + "】:" + responseInfo.substring(3000 * i));
+                    } else {
+                        Log.v(TAG, "【chunk " + i + " of " + chunkCount + "】:" + responseInfo.substring(3000 * i, max));
+                    }
+                }
+            } else {
+                Log.v(TAG, "sb.length = " + responseInfo.length());
+                Log.v(TAG, responseInfo.toString());
+            }
+        }
+
+    }
 }

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

@@ -524,7 +524,6 @@ public class AutoErpSigninUitl implements HttpHandler.OnResultListener {
     private void updataMissonDB(MissionModel mission) throws Exception {
         //更新数据库
         if (mission == null) return;//如果数据库没有,一般不会出现这样的情况
-
         if (StringUtils.isEmpty(mission.getRealTime()))
             mission.setRealTime(TimeUtils.f_long_2_str(System.currentTimeMillis()));
         else mission.setRealLeave(TimeUtils.f_long_2_str(System.currentTimeMillis()));
@@ -535,15 +534,15 @@ public class AutoErpSigninUitl implements HttpHandler.OnResultListener {
             if (StringUtils.isEmpty(mission.getCompanyName()))
                 subTitle = "UU已经帮你自动签退";
             else subTitle = "拜访" + mission.getCompanyName() + "签退成功";
-            //TODO 测试先放在上面
-            CommonInterface.getInstance().endMission(mission.getId(),false);
+
+            CommonInterface.getInstance().endMission(mission.getId(), false);
             loadIsMission(mission);
         } else {//签到
-            title = "自动外勤提醒";
-            if (StringUtils.isEmpty(mission.getCompanyName()))
-                subTitle = "UU已经帮你自动外勤签到";
-            else subTitle = "拜访" + mission.getCompanyName() + "签到成功";
             if (mission.getStatus() < 1) {
+                title = "自动外勤提醒";
+                if (StringUtils.isEmpty(mission.getCompanyName()))
+                    subTitle = "UU已经帮你自动外勤签到";
+                else subTitle = "拜访" + mission.getCompanyName() + "签到成功";
                 mission.setStatus(1);//说明没有打过卡
                 boolean saveOk = MissionDao.getInstance().updata(mission);
                 if (saveOk)//XXX公司自动外勤签到成功
@@ -552,7 +551,8 @@ public class AutoErpSigninUitl implements HttpHandler.OnResultListener {
             }
         }
         MissionDao.getInstance().updata(mission);
-        MessageDao.getInstance().instartSignin(title, subTitle);
+        if (!StringUtils.isEmpty(title) && !StringUtils.isEmpty(subTitle))
+            MessageDao.getInstance().instartSignin(title, subTitle);
     }
 
     /**

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

@@ -13,10 +13,7 @@ package com.xzjmyk.pm.activity.ui.erp.util.oa;
 public class OAConfig {
 
 
-    //关于OA类型常量表
-    public static final int OA_TYPE_TASK = 0x11;//任务,日程
-    public static final int OA_TYPE_MISSION = 0x12;//外勤单
-    public static final int OA_TYPE_RECORD = 0x13;//拜访报告
+
 
     public static final String ARRAY_DATA = "ARRAY_DATA";//oa模块中通用调转页面专递的ParcelableArrayListExtra
     public static final String MODEL_DATA = "MODEL_DATA";//oa模块中通用调转页面专递的ParcelableExtra

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

@@ -22,9 +22,9 @@ public class OAHttpUtil {
         List<OAModel> models = new ArrayList<>();
         if (StringUtils.isEmpty(key)) return models;
         JSONObject o = OACheckUtil.getJSONObject(object, key);
-        models.addAll(getModelByJSON(o, isMe, OAConfig.OA_TYPE_TASK, "schedule", "task"));//添加任务日程
-        models.addAll(getModelByJSON(o, isMe, OAConfig.OA_TYPE_MISSION, "outPlan", "outplan"));//外勤计划
-        models.addAll(getModelByJSON(o, isMe, OAConfig.OA_TYPE_RECORD, "visitRecord", "visitRecord"));//拜访报告
+        models.addAll(getModelByJSON(o, isMe, OAModel.OA_TYPE_TASK, "schedule", "task"));//添加任务日程
+        models.addAll(getModelByJSON(o, isMe, OAModel.OA_TYPE_MISSION, "outPlan", "outplan"));//外勤计划
+        models.addAll(getModelByJSON(o, isMe, OAModel.OA_TYPE_RECORD, "visitRecord", "visitRecord"));//拜访报告
         return models;
     }
 

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/oa/http/OAHttpHelper.java

@@ -91,7 +91,7 @@ public class OAHttpHelper extends Handler {
         Message message = Message.obtain();
         message.setData(bundle);
         Request.Mode mode = getMode(request);
-        ViewUtil.httpSendRequest(MyApplication.getInstance(), url, request.getParam(), this, headers, request.getWhat(), message, bundle, mode == Request.Mode.GET ? "GET" : "POST");
+        ViewUtil.httpSendRequest(MyApplication.getInstance(), url, request.getParam(), this, headers, request.getWhat(), message, bundle, mode == Request.Mode.GET ? "get" : "post");
     }
 
     private void loadB2B(Request request, OnHttpResultListener listener) throws Exception {
@@ -107,7 +107,7 @@ public class OAHttpHelper extends Handler {
         message.setData(bundle);
         int what = request.getWhat();
         Request.Mode mode = getMode(request);
-        ViewUtil.httpSendRequest(MyApplication.getInstance(), request.getUrl(), param, this, headers, what, message, bundle, mode == Request.Mode.GET ? "GET" : "POST");
+        ViewUtil.httpSendRequest(MyApplication.getInstance(), request.getUrl(), param, this, headers, what, message, bundle, mode == Request.Mode.GET ? "get" : "post");
     }
 
     private Map<String, Object> getParam(Request request) throws Exception {

+ 3 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/calender/month/MonthAdapter.java

@@ -9,6 +9,7 @@ import android.view.ViewGroup;
 import android.view.ViewGroup.LayoutParams;
 
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 
 import org.joda.time.DateTime;
 
@@ -60,6 +61,8 @@ public class MonthAdapter extends PagerAdapter {
         return date;
     }
 
+
+
     @Override
     public void destroyItem(ViewGroup container, int position, Object object) {
         container.removeView((View) object);

+ 5 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/calender/month/MonthCalendarView.java

@@ -7,6 +7,7 @@ import android.util.AttributeSet;
 import android.util.SparseArray;
 
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.calender.OnCalendarClickListener;
 
 import java.util.Calendar;
@@ -21,6 +22,7 @@ public class MonthCalendarView extends ViewPager implements OnMonthClickListener
     private OnCalendarClickListener mOnCalendarClickListener;
     private MonthView monthView;
 
+
     public MonthCalendarView(Context context) {
         this(context, null);
     }
@@ -79,7 +81,7 @@ public class MonthCalendarView extends ViewPager implements OnMonthClickListener
             if (monthView != null) {
                 monthView.clickThisMonth(monthView.getSelectYear(), monthView.getSelectMonth(), monthView.getSelectDay());
                 if (mOnCalendarClickListener != null) {
-                    mOnCalendarClickListener.onPageChange(monthView.getSelectYear(), monthView.getSelectMonth() , monthView.getSelectDay());
+                    mOnCalendarClickListener.onPageChange(monthView.getSelectYear(), monthView.getSelectMonth(), monthView.getSelectDay());
                 }
             }
         }
@@ -102,6 +104,8 @@ public class MonthCalendarView extends ViewPager implements OnMonthClickListener
     }
 
     public void setTasks(List<Integer> tasks) {
+        for (Integer i : tasks)
+            LogUtil.i("Integer==" + i);
         monthView.setTaskHintList(tasks);
     }
 

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/wxapi/ApiPlatform.java

@@ -7,7 +7,7 @@ package com.xzjmyk.pm.activity.wxapi;
  */
 public class ApiPlatform extends ApiBase implements ApiModel {
 
-    private final  String mBaseUrl = "http://218.17.158.219:9090/platform-b2b/"; //测试ip
+    private final String mBaseUrl = "http://218.17.158.219:9090/platform-b2b/"; //测试ip
 //    private final String mBaseUrl = "http://192.168.253.102:8090/platform-b2b/"; //董必伟本地ip
 //    private final String mBaseUrl = "http://192.168.253.192:8088/platform-b2b/"; //何本地ip
 

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

@@ -486,8 +486,7 @@
             android:id="@+id/test_rl"
             style="@style/IMTbleLine_UP_Me"
             android:layout_marginTop="7dp"
-            android:background="@drawable/selector_me_menu_item_bg"
-            android:visibility="gone">
+            android:background="@drawable/selector_me_menu_item_bg">
 
             <TextView
                 android:layout_width="wrap_content"

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

@@ -8,9 +8,10 @@
         android:id="@+id/statys_rl"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:layout_alignParentTop="true"
         android:layout_alignParentRight="true"
-        android:layout_centerVertical="true"
-        android:orientation="vertical">
+        android:layout_alignParentEnd="true">
 
         <TextView
             android:id="@+id/status_tv"

+ 41 - 118
WeiChat/src/main/res/layout/item_oa_list.xml

@@ -1,139 +1,62 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@drawable/selector_oa_itembg"
     android:descendantFocusability="blocksDescendants"
     android:padding="10dp">
 
-    <RelativeLayout
-        android:id="@+id/context_rl"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone">
-
-        <ImageView
-            android:id="@+id/doit_img"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
-            android:clickable="false"
-            android:src="@drawable/oa_doit" />
+    <ImageView
+        android:id="@+id/status_img"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:src="@drawable/oa_doit" />
 
-        <TextView
-            android:id="@+id/status_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentRight="true"
-            android:text="status_tv"
-            android:textColor="@color/text_hine"
-            android:textSize="@dimen/text_min" />
-
-        <TextView
-            android:id="@+id/name_remak_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_marginRight="10dp"
-            android:layout_toLeftOf="@id/status_tv"
-            android:ellipsize="end"
-            android:maxLines="2"
-            android:text="name_remak_tv"
-            android:textColor="@color/text_main"
-            android:textSize="@dimen/text_min" />
+    <LinearLayout
+        android:id="@+id/title_ll"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
 
         <TextView
             android:id="@+id/title_tv"
-            android:layout_width="wrap_content"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_below="@id/name_remak_tv"
-            android:layout_marginRight="10dp"
-            android:layout_toLeftOf="@id/status_tv"
+            android:layout_weight="1"
             android:ellipsize="end"
-            android:maxLines="2"
+            android:lines="1"
             android:textColor="@color/text_main"
-            android:textSize="@dimen/text_min" />
-
-
-        <TextView
-            android:id="@+id/addr_time_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_below="@id/title_tv"
-            android:layout_marginRight="10dp"
-            android:layout_marginTop="5dp"
-            android:layout_toLeftOf="@id/status_tv"
-            android:ellipsize="end"
-            android:maxLines="2"
-            android:text="addr_time_tv"
-            android:textColor="@color/text_hine"
-            android:textSize="@dimen/text_min" />
+            android:textSize="@dimen/text_main" />
 
         <TextView
-            android:id="@+id/object_tv"
-            android:layout_width="wrap_content"
+            android:id="@+id/status_tv"
+            android:layout_width="70dp"
             android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_below="@id/addr_time_tv"
-            android:layout_marginRight="10dp"
-            android:layout_marginTop="5dp"
-            android:layout_toLeftOf="@id/status_tv"
+            android:layout_toRightOf="@+id/title_tv"
             android:ellipsize="end"
-            android:maxLines="2"
-            android:textColor="@color/text_hine"
-            android:textSize="@dimen/text_min" />
+            android:lines="1" />
 
-    </RelativeLayout>
+    </LinearLayout>
 
-    <RelativeLayout
-        android:id="@+id/out_rl"
+    <TextView
+        android:id="@+id/address_tv"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:visibility="gone">
-
-        <ImageView
-            android:id="@+id/out_img"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
-            android:clickable="false"
-            android:src="@drawable/mission_plan_ok" />
-
-        <TextView
-            android:id="@+id/out_title_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_toLeftOf="@id/out_img"
-            android:textColor="@color/text_main"
-            android:textSize="@dimen/text_main" />
-
-        <TextView
-            android:id="@+id/out_addr_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_below="@+id/out_title_tv"
-            android:layout_marginTop="5dp"
-            android:layout_toLeftOf="@id/out_img"
-            android:textColor="@color/hintColor"
-            android:textSize="15sp" />
-
-        <TextView
-            android:id="@+id/out_object_tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_below="@+id/out_addr_tv"
-            android:layout_marginTop="5dp"
-            android:layout_toLeftOf="@id/out_img"
-            android:textColor="@color/hintColor"
-            android:textSize="@dimen/text_main" />
-
-    </RelativeLayout>
-
-</FrameLayout>
+        android:layout_height="wrap_content"
+        android:layout_below="@id/title_ll"
+        android:layout_marginRight="70dp"
+        android:layout_marginTop="10dp"
+        android:ellipsize="end"
+        android:lines="1" />
+
+    <TextView
+        android:id="@+id/handler_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/address_tv"
+        android:layout_marginRight="70dp"
+        android:layout_marginTop="10dp"
+        android:ellipsize="end"
+        android:lines="1" />
+</RelativeLayout>