Browse Source

处理关于外勤的相关bug

Bitliker 9 years ago
parent
commit
fa9df6c32e

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

@@ -396,28 +396,30 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                     intent.putExtra("data", object.toString());
                     startActivityForResult(intent, isMe ? 0x20 : 0x21);
                 } else if (adapter.isOutplan(object)) {
-                    String status = adapter.getJSONString(object, "mpd_status");
-                    String actdate = adapter.getJSONString(object, "mpd_actdate");
-                    String outdate = adapter.getJSONString(object, "mpd_outdate");
-                    //TODO 根据状态判断是否可以对外勤计划进行录入
-                    if ("已完成".equals(status)) {
-                        intent = new Intent(activity, VisitReportAddActivity.class);
-                        intent.putExtra("type", 3);
-                        intent.putExtra("isMe", false);//可以提交拜访报告
-                        intent.putExtra("data", object.toString());
-                        startActivityForResult(intent, isMe ? 0x20 : 0x21);
-                    } else {
-                        if (StringUtils.isEmpty(actdate) || StringUtils.isEmpty(outdate)) {
-                            if (isMe)
-                                Crouton.makeText(ct, "外勤计划尚未完成");
-                            return;
-                        }
+
+                    if (outPlanClick(object)) {//外勤计划
                         intent = new Intent(activity, VisitReportAddActivity.class);
                         intent.putExtra("type", 3);
                         intent.putExtra("isMe", isMe);//可以提交拜访报告
                         intent.putExtra("data", object.toString());
                         startActivityForResult(intent, isMe ? 0x20 : 0x21);
+                    } else {
+                        Crouton.makeText(ct, "外勤计划尚未完成");
                     }
+//                    if ("已完成".equals(status)) {
+//                        intent = new Intent(activity, VisitReportAddActivity.class);
+//                        intent.putExtra("type", 3);
+//                        intent.putExtra("isMe", false);//可以提交拜访报告
+//                        intent.putExtra("data", object.toString());
+//                        startActivityForResult(intent, isMe ? 0x20 : 0x21);
+//                    } else {
+//                        if (StringUtils.isEmpty(actdate) || StringUtils.isEmpty(outdate)) {
+//                            if (isMe)
+//
+//                            return;
+//                        }
+//
+//                    }
                 }
             }
         });
@@ -588,7 +590,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                     adapter = new OAListAdapter(ct);
                 for (int i = 0; i < a.size(); i++) {
                     o = a.getJSONObject(i);
-                    if (adapter.isVisit(o) || adapter.isVisitRecord(o)||adapter.isOutplan(o))
+                    if (adapter.isVisit(o) || adapter.isVisitRecord(o) || adapter.isOutplan(o))
                         chcheArray.add(o);
                 }
             } else {
@@ -639,7 +641,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         CommonUtil.textSpanForStyle(uok_task_num, "未完成 " + (size - ok), (size - ok) + "", getResources().getColor(R.color.orange_text));
 
         //当前日期小于等于选中日期
-        adapter.setArray(chche, isMe, TimeUtils.s_long_2_str(System.currentTimeMillis()).compareTo(TimeUtils.s_format.format(curDate)) <= 0);
+        adapter.setArray(chche, isMe, isToday());
         adapter.notifyDataSetChanged();
 
     }
@@ -943,6 +945,27 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         setAdapterBeans();
     }
 
+    private boolean outPlanClick(JSONObject object) {
+        if (isToday()) {
+            String status = adapter.getJSONString(object, "mpd_status");
+            if ("签退".equals(status)) return true;
+            else return false;
+        } else {
+            String actdate = adapter.getJSONString(object, "mpd_actdate");
+            String outdate = adapter.getJSONString(object, "mpd_outdate");
+            if (StringUtils.isEmpty(actdate) || StringUtils.isEmpty(outdate))
+                return false;
+            else return true;
+        }
+    }
+
+    private boolean isToday() {
+        boolean isToday = TimeUtils.s_long_2_str(System.currentTimeMillis()).
+                equals(TimeUtils.s_format.format(curDate));
+        Log.i("gongpengming", "isToday=" + isToday);
+        return isToday;
+    }
+
     /*判断*/
     private boolean getIsDecorat(String text, String chche) {
         Pattern p = Pattern.compile(chche);//遍历对象

+ 5 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/OAListAdapter.java

@@ -30,7 +30,7 @@ public class OAListAdapter extends BaseAdapter {
     private JSONArray array;
     private Context ct;
     private boolean isMe = false;
-    private boolean isMoreToday = false;//是否当天以后数据
+    private boolean isToday = false;//是否当天以后数据
 
     public OAListAdapter(Context ct) {
         this.ct = ct;
@@ -40,8 +40,8 @@ public class OAListAdapter extends BaseAdapter {
         return array;
     }
 
-    public void setArray(JSONArray array, boolean isMe, boolean isMoreToday) {
-        this.isMoreToday = isMoreToday;
+    public void setArray(JSONArray array, boolean isMe, boolean isToday) {
+        this.isToday = isToday;
         this.isMe = isMe;
         this.array = array;
     }
@@ -162,7 +162,7 @@ public class OAListAdapter extends BaseAdapter {
             else holder.addr_time_tv.setText("");//实际离开时间
             //当天未完成的不显示任何图标,状态为未完成,超过拜访时间,即第二天0点,添加图标 未完成。
             holder.status_tv.setText("");
-            if (isMoreToday) {
+            if (isToday) {
                 if ("签退".equals(getJSONString(object, "mpd_status"))) {
                     holder.doit_img.setImageResource(R.drawable.mission_plan_ok);
                 } else {
@@ -182,7 +182,7 @@ public class OAListAdapter extends BaseAdapter {
     }
 
     public String getJSONString(JSONObject object, String key) {
-        if (object.containsKey(key) && !StringUtils.isEmpty(object.getString(key))) {
+        if (object != null && object.containsKey(key) && !StringUtils.isEmpty(object.getString(key))) {
             return object.getString(key);
         } else {
             return "";