Browse Source

根据测试反馈,处理关于审批流的问题

Bitliker 8 years ago
parent
commit
ad08f7521f

+ 22 - 22
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/ProcessMsgActivity.java

@@ -123,7 +123,8 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
 //                        handleImids(1,array);
 //                        handleImids(1,array);
                         getEmimids(array);
                         getEmimids(array);
                         tv_process_un_num.setVisibility(View.VISIBLE);
                         tv_process_un_num.setVisibility(View.VISIBLE);
-                        tv_process_un_num.setText(array.size() + "");
+                        int numSize = ListUtils.getSize(array);
+                        tv_process_un_num.setText(numSize > 99 ? "99+" : (numSize <= 0 ? "" : String.valueOf(numSize)));
                     }
                     }
 
 
                     if (tab_type == 1 && mPosition > 0) {
                     if (tab_type == 1 && mPosition > 0) {
@@ -599,7 +600,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     int tdem_imid = OACheckUtil.getJsonIntager(jsonArray.getJSONObject(position), "EM_IMID");
                     int tdem_imid = OACheckUtil.getJsonIntager(jsonArray.getJSONObject(position), "EM_IMID");
                     model.name.setText(jp_launchername + "的" + jp_name);
                     model.name.setText(jp_launchername + "的" + jp_name);
                     if (jp_launchtime != null) {
                     if (jp_launchtime != null) {
-                        model.date.setText(DateFormatUtil.getStrDate4Date(new Date(jp_launchtime), "MM-dd HH:mm")+"");
+                        model.date.setText(DateFormatUtil.getStrDate4Date(new Date(jp_launchtime), "MM-dd HH:mm") + "");
                     } else {
                     } else {
                         model.date.setText("");
                         model.date.setText("");
                     }
                     }
@@ -633,31 +634,30 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     String jn_dealresult = jsonArray.getJSONObject(position).getString("JN_DEALRESULT");
                     String jn_dealresult = jsonArray.getJSONObject(position).getString("JN_DEALRESULT");
                     int done_emid = OACheckUtil.getJsonIntager(jsonArray.getJSONObject(position), "EM_IMID");
                     int done_emid = OACheckUtil.getJsonIntager(jsonArray.getJSONObject(position), "EM_IMID");
                     model.name.setText(jn_dealmanname + "的" + jp_name);
                     model.name.setText(jn_dealmanname + "的" + jp_name);
-                    if (!StringUtils.isEmpty(jn_dealtime)){
-                        String ttt =  DateFormatUtil.getStrDate4Date(new Date(TimeUtils.f_str_2_long(jn_dealtime)), "MM-dd HH:mm");
-                        model.date.setText(ttt+"");
-                    }else {
+                    if (!StringUtils.isEmpty(jn_dealtime)) {
+                        String ttt = DateFormatUtil.getStrDate4Date(new Date(TimeUtils.f_str_2_long(jn_dealtime)), "MM-dd HH:mm");
+                        model.date.setText(ttt + "");
+                    } else {
                         model.date.setText("");
                         model.date.setText("");
                     }
                     }
                     if (!StringUtils.isEmpty(jn_dealresult)) {
                     if (!StringUtils.isEmpty(jn_dealresult)) {
-                        if ("不同意".equals(jn_dealresult)) {
-                            model.status.setTextColor(getResources().getColor(R.color.red));
-                            model.status.setText("已拒绝");
-
-                        } else {
-                            if ("变更处理人".equals(jn_dealresult)) {
-                                model.status.setTextColor(getResources().getColor(R.color.done_approval));
-                                if (!StringUtils.isEmpty(jsonArray.getJSONObject(position).getString("JN_OPERATEDDESCRIPTION"))) {
-                                    model.status.setText("已变更处理人(" + jsonArray.getJSONObject(position).getString("JN_OPERATEDDESCRIPTION") + ")");
-                                } else {
-                                    model.status.setText("已变更处理人");
-                                }
+                        model.status.setText(jn_dealresult);
+                        int statusTextId = R.color.done_approval;
+                        if (jn_dealresult.startsWith("不同意") || jn_dealresult.startsWith("结束流程") || jn_dealresult.startsWith("未通过")) {
+                            statusTextId = R.color.red;
+                        } else if (jn_dealresult.startsWith("变更处理人")) {
+                            statusTextId = R.color.done_approval;
+                            if (!StringUtils.isEmpty(jsonArray.getJSONObject(position).getString("JN_OPERATEDDESCRIPTION"))) {
+                                model.status.setText("已变更处理人(" + jsonArray.getJSONObject(position).getString("JN_OPERATEDDESCRIPTION") + ")");
                             } else {
                             } else {
-                                model.status.setTextColor(getResources().getColor(R.color.titleBlue));
-                                model.status.setText("已同意");
+                                model.status.setText("已变更处理人");
                             }
                             }
-
+                        } else {
+                            statusTextId=  R.color.titleBlue;
                         }
                         }
+                        model.status.setTextColor(getResources().getColor(statusTextId));
+                    } else {
+                        model.status.setText("");
                     }
                     }
                     model.JP_NODEID = JP_NODEID;
                     model.JP_NODEID = JP_NODEID;
                     model.imid.setVisibility(View.VISIBLE);
                     model.imid.setVisibility(View.VISIBLE);
@@ -704,7 +704,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                         if (!StringUtils.isEmpty(name)) name = name.substring(0, name.length() - 2);
                         if (!StringUtils.isEmpty(name)) name = name.substring(0, name.length() - 2);
                         model.name.setText(name);
                         model.name.setText(name);
                         if (time != null) {
                         if (time != null) {
-                            model.date.setText(DateFormatUtil.getStrDate4Date(new Date(time), "MM-dd HH:mm")+"");
+                            model.date.setText(DateFormatUtil.getStrDate4Date(new Date(time), "MM-dd HH:mm") + "");
                         } else {
                         } else {
                             model.date.setText("");
                             model.date.setText("");
                         }
                         }

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

@@ -109,11 +109,16 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
 
 
     @Override
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (data != null && requestCode == 0x20) {
-            SelectEmUser user = data.getParcelableExtra("data");
-            if (user != null && !StringUtils.isEmpty(user.getEmCode())) {
-                mPresenter.updateAssignee(user.getEmCode(), OACheckUtil.getText(opinionET));
+        if (requestCode == 0x20) {
+            if (data==null){
+                mPresenter.updateAssignee(null, OACheckUtil.getText(opinionET));
+            }else{
+                SelectEmUser user = data.getParcelableExtra("data");
+                if (user != null && !StringUtils.isEmpty(user.getEmCode())) {
+                    mPresenter.updateAssignee(user.getEmCode(), OACheckUtil.getText(opinionET));
+                }
             }
             }
+
         } else if (data != null && (0x22 == requestCode || 0x21 == requestCode)) {
         } else if (data != null && (0x22 == requestCode || 0x21 == requestCode)) {
             SelectBean d = data.getParcelableExtra("data");
             SelectBean d = data.getParcelableExtra("data");
             if (d == null) return;
             if (d == null) return;
@@ -121,6 +126,9 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
             if (0x21 == requestCode) {
             if (0x21 == requestCode) {
                 getEmnameByReturn(name);
                 getEmnameByReturn(name);
             } else {
             } else {
+                if (name.equals("回退发起人")) {
+                    name = "RECORDER";
+                }
                 mPresenter.disAgree(OACheckUtil.getText(opinionET), name);
                 mPresenter.disAgree(OACheckUtil.getText(opinionET), name);
             }
             }
         } else if (0x25 == requestCode && 0x25 == resultCode) {
         } else if (0x25 == requestCode && 0x25 == resultCode) {
@@ -341,7 +349,7 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
         }
         }
         if (requestCode == 0x22) {
         if (requestCode == 0x22) {
             bean = new SelectBean();
             bean = new SelectBean();
-            bean.setName("RECORDER");
+            bean.setName("回退发起人");
             beans.add(0, bean);
             beans.add(0, bean);
         }
         }
         Intent intent = new Intent(ct, SelectActivity.class);
         Intent intent = new Intent(ct, SelectActivity.class);

+ 9 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/ApprovalAdapter.java

@@ -25,7 +25,6 @@ import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.Approval;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.Approval;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 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.LogUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.OpenFilesUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.OpenFilesUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomProgressDialog;
@@ -175,18 +174,20 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
         holder.statusIV.setImageResource(reId);
         holder.statusIV.setImageResource(reId);
         AvatarHelper.getInstance().display(String.valueOf(approval.getId()), holder.handIv, true, false);
         AvatarHelper.getInstance().display(String.valueOf(approval.getId()), holder.handIv, true, false);
         if (reId == R.drawable.daishenpi && isApprovaling) {
         if (reId == R.drawable.daishenpi && isApprovaling) {
-            holder.timeTv.setText(OACheckUtil.getString(R.string.common_changedealman));
-            holder.timeTv.setOnClickListener(new View.OnClickListener() {
+            holder.changeUser.setVisibility(View.VISIBLE);
+            holder.timeTv.setText("");
+            holder.changeUser.setOnClickListener(new View.OnClickListener() {
                 @Override
                 @Override
                 public void onClick(View v) {
                 public void onClick(View v) {
                     if (onChangeClickListener != null)
                     if (onChangeClickListener != null)
                         onChangeClickListener.click();
                         onChangeClickListener.click();
                 }
                 }
             });
             });
-            holder.timeTv.setTextColor(ct.getResources().getColor(R.color.titleBlue));
+//            holder.timeTv.setTextColor(ct.getResources().getColor(R.color.titleBlue));
         } else {
         } else {
+            holder.changeUser.setVisibility(View.GONE);
             holder.timeTv.setOnClickListener(null);
             holder.timeTv.setOnClickListener(null);
-            holder.timeTv.setTextColor(ct.getResources().getColor(R.color.text_normal));
+//            holder.timeTv.setTextColor(ct.getResources().getColor(R.color.text_normal));
             holder.timeTv.setText(approval.getValues());
             holder.timeTv.setText(approval.getValues());
         }
         }
 
 
@@ -468,7 +469,7 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
     }
     }
 
 
     private class NodeViewHolder extends RecyclerView.ViewHolder {
     private class NodeViewHolder extends RecyclerView.ViewHolder {
-        ImageView handIv, statusIV;
+        ImageView handIv, statusIV, changeUser;
         TextView timeTv, keyTv, valuesTv;
         TextView timeTv, keyTv, valuesTv;
         View padding;
         View padding;
 
 
@@ -483,8 +484,9 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
             valuesTv = (TextView) itemView.findViewById(R.id.valuesTv);
             valuesTv = (TextView) itemView.findViewById(R.id.valuesTv);
             handIv = (ImageView) itemView.findViewById(R.id.handIv);
             handIv = (ImageView) itemView.findViewById(R.id.handIv);
             statusIV = (ImageView) itemView.findViewById(R.id.statusIV);
             statusIV = (ImageView) itemView.findViewById(R.id.statusIV);
+            changeUser = (ImageView) itemView.findViewById(R.id.changeUser);
             padding = itemView.findViewById(R.id.padding);
             padding = itemView.findViewById(R.id.padding);
-
+            changeUser.setVisibility(View.GONE);
         }
         }
     }
     }
 
 

+ 26 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/ApprovaPresenter.java

@@ -100,6 +100,11 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return title.equals(OACheckUtil.getString(R.string.title_approval));
         return title.equals(OACheckUtil.getString(R.string.title_approval));
     }
     }
 
 
+    public boolean isApprovaled() {
+        if (StringUtils.isEmpty(title)) return false;
+        return title.equals(OACheckUtil.getString(R.string.task_confimed));
+    }
+
     public void trun2SetActivity(Activity activity) {
     public void trun2SetActivity(Activity activity) {
         if (loading) return;
         if (loading) return;
         ArrayList<Data> fields = new ArrayList<>();
         ArrayList<Data> fields = new ArrayList<>();
@@ -182,6 +187,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
             iApproval.showToast(R.string.submit_cannot_submit_again, R.color.load_submit);
             iApproval.showToast(R.string.submit_cannot_submit_again, R.color.load_submit);
             return;
             return;
         }
         }
+        if (StringUtils.isEmpty(emCode)) {
+            loadNextProcess();
+            return;
+        }
         iApproval.showLoading();
         iApproval.showLoading();
         String url = "common/setAssignee.action";
         String url = "common/setAssignee.action";
         Map<String, Object> param = new HashMap<>();
         Map<String, Object> param = new HashMap<>();
@@ -830,8 +839,14 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 idTag = valueKey;
                 idTag = valueKey;
                 id = OACheckUtil.getJsonIntager(data, valueKey);
                 id = OACheckUtil.getJsonIntager(data, valueKey);
             }
             }
+            if (approval.isDftypeEQ("H")
+                    || isdefault != -1
+                    || appwidth == 0
+                    || (!isMain && OACheckUtil.getJsonIntager(config, "DG_WIDTH") == 0)) {
+                continue;
+            }
             boolean showAble = data != null && data.containsKey(valueKey);
             boolean showAble = data != null && data.containsKey(valueKey);
-            if (!OACheckUtil.isEmpty(caption) && !approval.isDftypeEQ("H")) {
+            if (!OACheckUtil.isEmpty(caption)) {
                 if (showAble) {
                 if (showAble) {
                     approval.setValues(OACheckUtil.getJson2Text(data, valueKey)); //获取第一个字段的值
                     approval.setValues(OACheckUtil.getJson2Text(data, valueKey)); //获取第一个字段的值
                     if (addHint) {
                     if (addHint) {
@@ -841,13 +856,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
                     hineApprovals.add(approval);
                     hineApprovals.add(approval);
                 }
                 }
             }
             }
-            if (approval.isDftypeEQ("H")
-                    || isdefault != -1
-                    || appwidth == 0
-                    || (!isMain && OACheckUtil.getJsonIntager(config, "DG_WIDTH") == 0)
-                    || OACheckUtil.isEmpty(valueKey)
-                    || OACheckUtil.isEmpty(caption)
-                    || (merged.length() > 0 && merged.toString().contains("," + valueKey + ","))) {
+
+            if (OACheckUtil.isEmpty(valueKey) || OACheckUtil.isEmpty(caption) || (merged.length() > 0 && merged.toString().contains("," + valueKey + ","))) {
                 continue;
                 continue;
             }
             }
             //添加下拉数据
             //添加下拉数据
@@ -894,7 +904,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
             approval.setCaller(caller);
             approval.setCaller(caller);
             approvals.add(approval);
             approvals.add(approval);
         }
         }
-        for (Approval approval : approvals) {
+        for (
+                Approval approval : approvals)
+
+        {
             approval.setId(id);
             approval.setId(id);
             approval.setIdKey(idTag);
             approval.setIdKey(idTag);
         }
         }
@@ -990,7 +1003,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 if (bundle != null && !StringUtils.isEmpty(bundle.getString("historyNode"))) {
                 if (bundle != null && !StringUtils.isEmpty(bundle.getString("historyNode"))) {
                     historyNodes = handlerHistorySetuptask(JSON.parseObject(bundle.getString("historyNode")));
                     historyNodes = handlerHistorySetuptask(JSON.parseObject(bundle.getString("historyNode")));
                 }
                 }
-                if (ListUtils.isEmpty(approvals) && !ListUtils.isEmpty(historyNodes)) {
+                if ((isApprovaled() || ListUtils.isEmpty(approvals)) && !ListUtils.isEmpty(historyNodes)) {
                     showNode = false;
                     showNode = false;
                     approvals = historyNodes;
                     approvals = historyNodes;
                 }
                 }
@@ -1004,8 +1017,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 for (Approval a : approvals) {
                 for (Approval a : approvals) {
                     if (!a.getIdKey().startsWith("已审批")) {
                     if (!a.getIdKey().startsWith("已审批")) {
                         hanNotApproval = true;
                         hanNotApproval = true;
-                    } else if (a.getIdKey().startsWith("待审批")) {
-                        a.setValues("");
+                        if (a.getIdKey().startsWith("待审批"))
+                            a.setValues("");
                     }
                     }
                     String emcode = null;
                     String emcode = null;
                     if (a.getDfType().contains(",")) {
                     if (a.getDfType().contains(",")) {
@@ -1024,7 +1037,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 int reId = -1;
                 int reId = -1;
                 if ("未通过".equals(record.status) || "已结束".equals(record.status)) {
                 if ("未通过".equals(record.status) || "已结束".equals(record.status)) {
                     reId = R.drawable.unapproved;
                     reId = R.drawable.unapproved;
-                } else if (!hanNotApproval) {//没有为审批的数据
+                } else if (!hanNotApproval && !isApprovaling()) {//没有未审批的数据
                     showNode = false;
                     showNode = false;
                     if (!ListUtils.isEmpty(historyNodes)) {
                     if (!ListUtils.isEmpty(historyNodes)) {
                         approvals = historyNodes;
                         approvals = historyNodes;

+ 8 - 0
WeiChat/src/main/res/layout/item_approval_node.xml

@@ -29,6 +29,14 @@
             android:layout_marginRight="10dp"
             android:layout_marginRight="10dp"
             android:layout_toRightOf="@id/statusIV"/>
             android:layout_toRightOf="@id/statusIV"/>
 
 
+
+        <ImageView
+            android:id="@+id/changeUser"
+            android:layout_width="22dp"
+            android:layout_height="22dp"
+            android:layout_alignParentRight="true"
+            android:visibility="gone"/>
+
         <TextView
         <TextView
             android:id="@+id/timeTv"
             android:id="@+id/timeTv"
             style="@style/commonTextStyle"
             style="@style/commonTextStyle"

+ 39 - 36
app_core/network/src/main/java/network/app/http/HttpBase.java

@@ -4,46 +4,49 @@ package network.app.http;
 import rx.Subscriber;
 import rx.Subscriber;
 
 
 public abstract class HttpBase {
 public abstract class HttpBase {
-	
-	public HttpClient mbuilder;
-	/**
-	 * 设置全局builder 
-	 * 初始化全局参数
-	 * @param client
-	 */
-	public void setBuilder(HttpClient client) {
-		this.mbuilder=client;
-	}
-	
+
+    public HttpClient mbuilder;
+
+    /**
+     * 设置全局builder
+     * 初始化全局参数
+     *
+     * @param client
+     */
+    public void setBuilder(HttpClient client) {
+        this.mbuilder = client;
+    }
+
     /**
     /**
      * 初始化具体的网络请求客户端
      * 初始化具体的网络请求客户端
      * 初始化全局参数
      * 初始化全局参数
      * 比如Okhttp,Retrofit,Volley,HttpClient,HttpUrlConnection
      * 比如Okhttp,Retrofit,Volley,HttpClient,HttpUrlConnection
      */
      */
     public abstract void initClient();
     public abstract void initClient();
-    
-	
-	/**
-	 * @param builder
-	 * @param s rxjava
-	 */
-	public  void send(HttpClient builder, Subscriber<Object> s){
-		if (builder.getMethod()==Method.GET) {
-			get(builder, s);
-		}
-		if (builder.getMethod()==Method.POST) {
-			post(builder, s);
-		}
-	}
-	/** 
-	  * @desc:上传功能 
-	 *         支持多文件上传
-	  * @author:Arison on 2017/5/17
-	  */
-	public void uploads(HttpClient builder,Subscriber<Object> s){}
-	
-	public abstract void get(HttpClient builder,Subscriber<Object> s);
-	
-	public abstract void post(HttpClient builder,Subscriber<Object> s);
-	
+
+
+    /**
+     * @param builder
+     * @param s       rxjava
+     */
+    public void send(HttpClient builder, Subscriber<Object> s) {
+        if (builder.getMethod() == Method.GET) {
+            get(builder, s);
+        }
+        if (builder.getMethod() == Method.POST) {
+            post(builder, s);
+        }
+    }
+
+    /**
+     * @desc:上传功能 支持多文件上传
+     * @author:Arison on 2017/5/17
+     */
+    public void uploads(HttpClient builder, Subscriber<Object> s) {
+    }
+
+    public abstract void get(HttpClient builder, Subscriber<Object> s);
+
+    public abstract void post(HttpClient builder, Subscriber<Object> s);
+
 }
 }