Browse Source

1.根据测试反馈,处理关于审批流详情界面显示异常的问题
2.根据测试反馈,处理关于在切换新旧版本时候出现的显示问题

Bitliker 8 years ago
parent
commit
1fc40cc28a

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

@@ -357,7 +357,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                 if (StringUtils.isEmpty(d_imids)) {
                     d_imids = MyApplication.getInstance().mLoginUser.getUserId(); //审批详情界面:这里显示是我发起的,取当前登录当前用户的头像
                 }
-                LogUtil.i("url="+url);
+                LogUtil.i("url=" + url);
                 String master = model.master == null ? CommonUtil.getSharedPreferences(ct, "erp_master") : model.master;
                 if (CommonUtil.isReleaseVersion()) {
                     CommonUtil.loadWebView(ct, url, title, master, null, null);
@@ -662,7 +662,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                         String codename = jsonArray.getJSONObject(position).getString("JP_NODENAME");
                         if (!StringUtils.isEmpty(status)) {
                             if (status.equals("待审批")) {
-                                model.status.setTextColor(getResources().getColor(R.color.new_waitting_approvel));
+                                model.status.setTextColor(getResources().getColor(R.color.approvaling));
                                 nodename = nodename == null ? "" : nodename;
                                 status = "等待" + nodename + "(" + codename + ")" + getString(R.string.approvel);
                             } else if (status.equals("未通过")) {
@@ -777,7 +777,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     jsonArray = (JSONArray) results.values;
                     LogUtil.d("过滤后:" + JSON.toJSONString(jsonArray));
                     notifyDataSetChanged();
-                    if (mAdapter.getCount()==0){
+                    if (mAdapter.getCount() == 0) {
                         mEmptyLayout.showEmpty();
                     }
                 }

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

@@ -329,7 +329,11 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
             } else {
                 setViewShowAble(true, holder.valueTv);
                 setViewShowAble(false, holder.valueEt, holder.valueWeb);
-                holder.valueTv.setText(Html.fromHtml(approval.getValues()));
+                if (approval.isNumber()) {
+                    holder.valueTv.setText(approval.getNumber());
+                } else {
+                    holder.valueTv.setText(Html.fromHtml(approval.getValues()));
+                }
             }
         }
     }

+ 37 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/Approval.java

@@ -80,6 +80,38 @@ public class Approval {
         return values == null ? "" : values;
     }
 
+    public String getNumber() {
+        try {
+            StringBuilder builder = new StringBuilder();
+            int num = 1;
+            String v1 = null;
+            String v2 = null;
+            if (values.contains(".")) {
+                int fas = values.indexOf(".");
+                v1 = values.substring(0, fas);
+                v2 = values.substring(fas, values.length());
+            } else {
+                v1 = values;
+                v2 = "";
+            }
+            for (int i = v1.length() - 1; i >= 0; i--) {
+                char c = v1.charAt(i);
+                builder.insert(0, c);
+                if (i > 0 && num == 3) {
+                    num = 0;
+                    builder.insert(0, ',');
+                }
+
+                num++;
+            }
+            if (v2 != null)
+                builder.append(v2);
+            return builder.toString();
+        } catch (Exception e) {
+            return getValues();
+        }
+    }
+
     public void setValues(String values) {
         this.values = values;
     }
@@ -100,7 +132,6 @@ public class Approval {
         this.datas = datas;
     }
 
-
     public int getType() {
         return type == 0 ? MAIN : type;
     }
@@ -137,7 +168,7 @@ public class Approval {
      * @return 输入类型:0字符输入  1.数字输入  2.日期输入选择  3.下拉选择  4.多选选择
      */
     public int inputType() {
-        if (isDftypeEQ("floatcolumn8", "N"))
+        if (isNumber())
             return 1;
         else if (isDftypeEQ("DT", "D")) {
             return 2;
@@ -186,6 +217,10 @@ public class Approval {
         return false;
     }
 
+    public boolean isNumber() {
+        return isDftypeEQ("N", "floatcolumn8", "SN");
+    }
+
 
     public static class Data {
         public String value = "";

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

@@ -67,6 +67,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
     private String title;
     private List<Approval> approvals;
 
+    //审批要点\当前明细表\历史节点
+    private boolean setupTaskSubing, formDataSubing, jnodesSubing;
+
     public boolean isApprovaling() {
         if (StringUtils.isEmpty(title)) return false;
         return title.equals(OACheckUtil.getString(R.string.title_approval));
@@ -120,10 +123,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
     }
 
     public String getUrl(String baseUrl, String title) {
-        if (StringUtils.isEmpty(baseUrl))
-            baseUrl = "jsps/mobile/process.jsp?nodeId=";
-        LogUtil.i("title=" + title);
         String endStatus = (StringUtils.isEmpty(title) || title.equals(OACheckUtil.getString(R.string.title_approval)) ? "" : "%26_do=1");
+        if (StringUtils.isEmpty(baseUrl) || endStatus.contains("26_do=1")) {
+            baseUrl = "jsps/mobile/process.jsp?nodeId=";
+        }
         return baseUrl + record.nodeId + endStatus;
     }
 
@@ -256,6 +259,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
     }
 
     public void loadTakeOver() {
+        if (submiting && canNext()) return;
         iApproval.showLoading();
         String url = "common/takeOverTask.action";
         Map<String, Object> param = new HashMap<>();
@@ -289,9 +293,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
     }
 
     public void loadNextProcess() {
+        if (submiting && canNext()) return;
         iApproval.showToast(R.string.loadtonext_approval, R.color.load_submit);
         iApproval.showLoading();
-        if (submiting) return;
         submiting = true;
         String url = "common/getNextProcess.action";
         Map<String, Object> param = new HashMap<>();
@@ -308,6 +312,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
     //下拉明细表数据
     private void loadDetailedList() {
         iApproval.showLoading();
+        formDataSubing = true;
         String url = "mobile/common/getformandgriddata.action";
         Map<String, Object> param = new HashMap<>();
         param.put("caller", record.caller);
@@ -337,6 +342,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
     //下拉审批要点
     private void loadCustomSetupOfTask() {
         iApproval.showLoading();
+        setupTaskSubing = true;
         String url = "common/getCustomSetupOfTask.action";
         Map<String, Object> param = new HashMap<>();
         param.put("_noc", 1);
@@ -351,6 +357,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
     //获取历史节点数据
     private void loadJnodes() {
         iApproval.showLoading();
+        jnodesSubing = true;
         String url = "common/getCurrentJnodes.action";
         Map<String, Object> param = new HashMap<>();
         param.put("caller", record.caller);
@@ -456,8 +463,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
                     public void run() {
                         try {
                             handlerFormandGriddataInThread(OACheckUtil.getJSONObject(object, "datas"));
+                            formDataSubing = false;
                         } catch (Exception e) {
                             submiting = false;
+                            formDataSubing = false;
                             e.printStackTrace();
                         }
                     }
@@ -817,6 +826,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
             }
         });
         submiting = false;
+        jnodesSubing = false;
     }
 
     private void handlerEnclosure(final JSONArray array) throws Exception {
@@ -926,6 +936,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                         setData2ListThread(Approval.POINTS, pointsList);
                     }
                 }
+                setupTaskSubing = false;
             }
         });
 
@@ -1134,6 +1145,13 @@ public class ApprovaPresenter implements OnHttpResultListener {
         iApproval.showModels(approvals);
     }
 
+    private boolean canNext() {
+        LogUtil.i("setupTaskSubing="+setupTaskSubing);
+        LogUtil.i("formDataSubing="+formDataSubing);
+        LogUtil.i("jnodesSubing="+jnodesSubing);
+
+        return !setupTaskSubing && !formDataSubing && !jnodesSubing;
+    }
 
     private synchronized void setData2ListThread(int type, List<Approval> newApprovals) {
         LogUtil.i("come to setData2ListThread=" + type);