Просмотр исходного кода

Merge branch 'draft' of https://gitlab.com/Arisono/SkWeiChat-Baidu into uu_v2.0

SpringBoots 8 лет назад
Родитель
Сommit
1b6dacc5e2
24 измененных файлов с 567 добавлено и 238 удалено
  1. 12 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/helper/AvatarHelper.java
  2. 20 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DataInquiryActivity.java
  3. 32 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DataInquiryListActivity.java
  4. 14 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/message/ProcessMsgActivity.java
  5. 5 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/oa/ApprovalAdapter.java
  6. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/entity/SelectCollisionTurnBean.java
  7. 37 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/Approval.java
  8. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/ApprovalRecord.java
  9. 219 199
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/ApprovaPresenter.java
  10. 2 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectCollisionPresenter.java
  11. BIN
      WeiChat/src/main/res/drawable-hdpi/avatar_normal.png
  12. BIN
      WeiChat/src/main/res/drawable-xhdpi/avatar_normal.png
  13. BIN
      WeiChat/src/main/res/drawable-xxhdpi/avatar_normal.png
  14. 10 0
      WeiChat/src/main/res/drawable/shape_item_data_inquiry_blue.xml
  15. 10 0
      WeiChat/src/main/res/drawable/shape_item_data_inquiry_green.xml
  16. 9 0
      WeiChat/src/main/res/layout/action_data_inquiry_list.xml
  17. 89 0
      WeiChat/src/main/res/layout/activity_data_inquiry.xml
  18. 37 0
      WeiChat/src/main/res/layout/activity_data_inquiry_list.xml
  19. 27 0
      WeiChat/src/main/res/layout/item_list_data_inquiry.xml
  20. 16 14
      WeiChat/src/main/res/layout/pop_crm_list.xml
  21. 6 0
      WeiChat/src/main/res/values-en/strings.xml
  22. 6 0
      WeiChat/src/main/res/values-zh-rCN/strings.xml
  23. 7 1
      WeiChat/src/main/res/values-zh-rTW/strings.xml
  24. 7 2
      WeiChat/src/main/res/values/strings.xml

+ 12 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/helper/AvatarHelper.java

@@ -94,6 +94,7 @@ public class AvatarHelper {
 //            return;
 
     }
+
     public void displayRoomAvatar(String userId, final ImageView imageView, final boolean isThumb) {
         final String url = getAvatarUrl(userId, isThumb);
         if (TextUtils.isEmpty(url)) {
@@ -137,6 +138,7 @@ public class AvatarHelper {
             display(url, imageView, isThumb);
         }
     }
+
     public void displayAvatar(String userId, final ImageView imageView, final boolean isThumb) {
         final String url = getAvatarUrl(userId, isThumb);
         if (TextUtils.isEmpty(url)) {
@@ -184,7 +186,7 @@ public class AvatarHelper {
 
     public void displayAvatarPng(String userId, final ImageView imageView, final boolean isThumb) {
         final String url = getAvatarUrlPng(userId, isThumb);
-        Log.i("Arison","AvatarHelper:displayAvatar:140:"+url);
+        Log.i("Arison", "AvatarHelper:displayAvatar:140:" + url);
         if (TextUtils.isEmpty(url)) {
             return;
         }
@@ -280,12 +282,13 @@ public class AvatarHelper {
 
     /**
      * 图片的url 转 Bitmap对象
+     *
      * @param userId
      * @param isThumb
      * @return
      */
-    public static Bitmap returnBitmap(String userId,boolean isThumb){
-        final  String urlpath = getAvatarUrl(userId, isThumb);
+    public static Bitmap returnBitmap(String userId, boolean isThumb) {
+        final String urlpath = getAvatarUrl(userId, isThumb);
         Bitmap mBitmap = null;
         try {
             URL url = new URL(urlpath);
@@ -302,10 +305,11 @@ public class AvatarHelper {
 
     /**
      * 图片的 Bitmap对象转 url
+     *
      * @param bitmap
      * @return
      */
-    public static String doBitmapTurnToStringurl(Bitmap bitmap){
+    public static String doBitmapTurnToStringurl(Bitmap bitmap) {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();// outputstream
         bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
         byte[] appicon = baos.toByteArray();// 转为byte数组
@@ -362,15 +366,17 @@ public class AvatarHelper {
             display(url, imageAware, isThumb);
         }
     }
+
     public static String getRoomAvatarUrl(String userId, boolean isThumb) {
         String url = null;
         if (isThumb) {
-            url = MyApplication.getInstance().getConfig().AVATAR_THUMB_PREFIX + "/" +  "/" + userId + ".jpg";
+            url = MyApplication.getInstance().getConfig().AVATAR_THUMB_PREFIX + "/" + "/" + userId + ".jpg";
         } else {
-            url = MyApplication.getInstance().getConfig().AVATAR_ORIGINAL_PREFIX + "/" +   "/" + userId + ".jpg";
+            url = MyApplication.getInstance().getConfig().AVATAR_ORIGINAL_PREFIX + "/" + "/" + userId + ".jpg";
         }
         return url;
     }
+
     public static String getAvatarUrl(String userId, boolean isThumb) {
         if (TextUtils.isEmpty(userId)) {
             return null;
@@ -421,7 +427,6 @@ public class AvatarHelper {
     }
 
 
-
     // // 无用
     // public void displayResumeAvatar(String userId, ImageView imageView, boolean isThumb) {
     // String url = getResumeAvatar(userId, isThumb);

+ 20 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DataInquiryActivity.java

@@ -0,0 +1,20 @@
+package com.xzjmyk.pm.activity.ui.erp.activity;
+
+import android.os.Bundle;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+
+/**
+ * Created by RaoMeng on 2017/8/3.
+ * 选择查询业务页面
+ */
+public class DataInquiryActivity extends BaseActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_data_inquiry);
+        getSupportActionBar().setTitle(R.string.select_query_service);
+    }
+}

+ 32 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DataInquiryListActivity.java

@@ -0,0 +1,32 @@
+package com.xzjmyk.pm.activity.ui.erp.activity;
+
+import android.os.Bundle;
+import android.support.v7.app.ActionBar;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView;
+
+/**
+ * Created by RaoMeng on 2017/8/3.
+ * 数据查询列表页面
+ */
+public class DataInquiryListActivity extends BaseActivity {
+    private VoiceSearchView mVoiceSearchView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_data_inquiry_list);
+
+        View view = LayoutInflater.from(ct).inflate(R.layout.action_data_inquiry_list, null);
+        ActionBar bar = this.getSupportActionBar();
+        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        mVoiceSearchView = (VoiceSearchView) view.findViewById(R.id.data_inquiry_searchview);
+        bar.setCustomView(view);
+    }
+
+
+}

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

@@ -105,6 +105,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                             mAdapter = new ProcessAdapter(ct, array);
                             mList.setAdapter(mAdapter);
                         } else {
+                            mAdapter.setData(array);
                             mAdapter.notifyDataSetChanged();
                         }
 
@@ -128,11 +129,11 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                         tv_process_un_num.setText(array.size() + "");
                     }
 
-                    if (wait_app){
-                        if ( mPosition < array.size()){
+                    if (wait_app) {
+                        if (mPosition < array.size()) {
                             mList.getRefreshableView().setSelection(mPosition);
-                        }else {
-                            mList.getRefreshableView().setSelection(array.size()-1);
+                        } else {
+                            mList.getRefreshableView().setSelection(array.size() - 1);
                         }
                     }
                     progressDialog.dismiss();
@@ -367,7 +368,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);
@@ -382,7 +383,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
                     Intent intent = new Intent(ct, ApprovalActivity.class);
                     intent.putExtra("imid", d_imids);
                     intent.putExtra("title", title);
-                    intent.putExtra("type",tab_type);
+                    intent.putExtra("type", tab_type);
                     intent.putExtra("nodeid", Integer.valueOf(model.JP_NODEID));
                     startActivity(intent);
                 }
@@ -419,7 +420,7 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
 
-        if (resultCode == 170809){
+        if (resultCode == 170809) {
             wait_app = true;
             loadProcessToDo(page);
         }
@@ -546,6 +547,11 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
             this.inflater = LayoutInflater.from(ct);
         }
 
+        public void setData(JSONArray array) {
+            this.jsonArray = array;
+            this.originArray = array;
+        }
+
         @Override
         public int getCount() {
             return jsonArray == null ? 0 : jsonArray.size();
@@ -797,7 +803,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()));
+                }
             }
         }
     }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/entity/SelectCollisionTurnBean.java

@@ -71,7 +71,7 @@ public class SelectCollisionTurnBean implements Parcelable {
     };
 
     public String getTitle() {
-        return title;
+        return title==null?"":title;
     }
 
 

+ 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 = "";

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

@@ -12,6 +12,7 @@ import java.util.Map;
 public class ApprovalRecord {
     public int id = 0;
     public int nodeId = 0;
+    public String title;
     public String chcheNode = "";
     public String imid = "";
     public String status = "";

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

@@ -28,6 +28,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.oa.http.OnHttpResultListener;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.http.Request;
 import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -60,13 +61,30 @@ public class ApprovaPresenter implements OnHttpResultListener {
     private final int LOAD_FORMAND_GRIDDATA = 0x21;//当前明细表
 
     private IApproval iApproval;
-    private boolean submiting;
     private ApprovalRecord record;
     private DBManager manager;
-    public String chchePoints = "";
+    public String chchePoints = "";//审批要点缓存
     private String title;
     private List<Approval> approvals;
 
+    private boolean submit, loading, nexting;
+
+    public ApprovaPresenter(IApproval iApproval, Intent intent) {
+        this.iApproval = iApproval;
+        if (intent != null) {
+            int id = intent.getIntExtra("nodeid", -1);
+            String imid = intent.getStringExtra("imid");
+            title = intent.getStringExtra("title");
+            if (id != -1) {
+                initLoad(id, imid);
+            } else {
+                initLoad(0, imid);
+            }
+        } else {
+            initLoad(0);
+        }
+    }
+
     public boolean isApprovaling() {
         if (StringUtils.isEmpty(title)) return false;
         return title.equals(OACheckUtil.getString(R.string.title_approval));
@@ -96,22 +114,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 0x25);
     }
 
-    public ApprovaPresenter(IApproval iApproval, Intent intent) {
-        this.iApproval = iApproval;
-        if (intent != null) {
-            int id = intent.getIntExtra("nodeid", -1);
-            String imid = intent.getStringExtra("imid");
-            title = intent.getStringExtra("title");
-            if (id != -1) {
-                initLoad(id, imid);
-            } else {
-                initLoad(0, imid);
-            }
-        } else {
-            initLoad(0);
-        }
-    }
-
     public void closeDB() {
         if (manager != null) {
             manager.closeDB();
@@ -120,10 +122,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;
     }
 
@@ -142,20 +144,78 @@ public class ApprovaPresenter implements OnHttpResultListener {
         if (imid != null)
             record.imid = imid;
         iApproval.initStatus();
+        submit = false;
+        loading = false;
+        nexting = false;
         loadCurrentNode();
     }
 
+
+    /**
+     * start 提交部分
+     */
+        /*变更处理人 submiting*/
+    public void updateAssignee(String emCode, String nodeLog) {
+        if (StringUtils.isEmpty(nodeLog)) {
+            iApproval.showToast(R.string.approval_opinion_error, R.color.load_submit);
+            return;
+        }
+        if (submit) {
+            iApproval.showToast(R.string.submit_cannot_submit_again, R.color.load_submit);
+            return;
+        }
+        iApproval.showLoading();
+        String url = "common/setAssignee.action";
+        Map<String, Object> param = new HashMap<>();
+        param.put("taskId", record.nodeId);
+        param.put("assigneeId", emCode);//新处理人的员工编号
+        param.put("processInstanceId", record.processInstanceId);//流程实例id
+        param.put("description", nodeLog);//流程实例id
+        param.put("_center", "0");//是否集团账套
+        param.put("_noc", 1);//权限管控
+        Request.Bulider bulider = new Request.Bulider()
+                .setUrl(url)
+                .setMode(Request.Mode.POST)
+                .setWhat(LOAD_UPDATE_ASSIGNEE)
+                .setParam(param);
+        OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
+    }
+
+    /*接管 submiting*/
+    public void loadTakeOver() {
+        if (submit || loading) return;
+        submit = true;
+        iApproval.showLoading();
+        String url = "common/takeOverTask.action";
+        Map<String, Object> param = new HashMap<>();
+        param.put("em_code", CommonUtil.getEmcode());
+        param.put("nodeId", record.nodeId);
+        param.put("needreturn", true);
+        Request.Bulider bulider = new Request.Bulider()
+                .setUrl(url)
+                .setMode(Request.Mode.POST)
+                .setWhat(LOAD_TAKE_OVER)
+                .setParam(param);
+        OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
+    }
+
+    /*提交更新必填字段 submiting*/
     public void loadProcessUpdate(String nodeLog, List<Approval> approvals) {
+        if (!canSubmit())
+            return;
+        submit = true;
         StringBuilder pointsBuilder = new StringBuilder();
-        if (!inputAllPoints(pointsBuilder, approvals))
+        if (!inputAllPoints(pointsBuilder, approvals)) {
+            submit = false;
             return;
+        }
         chchePoints = pointsBuilder.toString();
-        LogUtil.i("chchePoints=" + chchePoints);
         String url = "common/processUpdate.action";
         Map<String, Object> param = new HashMap<>();
         List<Map<String, Object>> params = new ArrayList<>();
         Map<String, Object> formStore = new HashMap<>();
         if (!inputAllInput(params, formStore, approvals)) {
+            submit = false;
             return;
         }
         if ((formStore.isEmpty() || formStore.size() <= 1) && ListUtils.isEmpty(params)) {
@@ -178,9 +238,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
+    /*同意 submiting end loadProcessUpdate*/
     private void agree(String nodeLog) {
-        if (!canSubmit()) return;
-        submiting = true;
         iApproval.showLoading();
         String points = OACheckUtil.getString(chchePoints);
         points.replaceAll("@", "").replaceAll("\\@", "").replaceAll("\\\\@", "");
@@ -203,74 +262,79 @@ public class ApprovaPresenter implements OnHttpResultListener {
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    public void disAgree(String nodeLog) {
-        if (StringUtils.isEmpty(nodeLog)) {
-            iApproval.showToast(R.string.approval_opinion_error, R.color.load_submit);
-            return;
-        }
-        if (!canSubmit()) return;
-        submiting = true;
+    //结束流程
+    private void loadEndProcess() {
+        String url = "common/endProcessInstance.action";
+        Map<String, Object> param = new HashMap<>();
+        param.put("processInstanceId", record.processInstanceId);
+        param.put("holdtime", 435);
+        param.put("nodeId", record.nodeId);
+        Request.Bulider bulider = new Request.Bulider()
+                .setUrl(url)
+                .setWhat(LOAD_END_PROCESS)
+                .setParam(param);
+        OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
+    }
+
+    /*获取下一个节点 loading*/
+    public void loadNextProcess() {
+        if (loading || nexting) return;
+        nexting = true;
+        iApproval.showToast(R.string.loadtonext_approval, R.color.load_submit);
         iApproval.showLoading();
-        String url = "common/review.action";
+        String url = "common/getNextProcess.action";
         Map<String, Object> param = new HashMap<>();
         param.put("taskId", record.nodeId);
-        param.put("nodeName", record.nodeName);
-        param.put("nodeLog", nodeLog);
-        param.put("result", false);
-        param.put("backTaskName", "RECORDER");
-        param.put("attachs", "");//附件id
         param.put("_noc", 1);//权限管控
-        param.put("holdtime", 4311);//holdtime
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
                 .setMode(Request.Mode.POST)
-                .setWhat(LOAD_DISAGREE)
+                .setWhat(LOAD_NEXT_PROCESS)
                 .setParam(param);
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    public void updateAssignee(String emCode, String nodeLog) {
+    /*不同意 submiting*/
+    public void disAgree(String nodeLog) {
         if (StringUtils.isEmpty(nodeLog)) {
             iApproval.showToast(R.string.approval_opinion_error, R.color.load_submit);
             return;
         }
-        if (!canSubmit()) {
-            return;
-        }
+
+        if (!canSubmit()) return;
         iApproval.showLoading();
-        submiting = true;
-        String url = "common/setAssignee.action";
+        String url = "common/review.action";
         Map<String, Object> param = new HashMap<>();
         param.put("taskId", record.nodeId);
-        param.put("assigneeId", emCode);//新处理人的员工编号
-        param.put("processInstanceId", record.processInstanceId);//流程实例id
-        param.put("description", nodeLog);//流程实例id
-        param.put("_center", "0");//是否集团账套
+        param.put("nodeName", record.nodeName);
+        param.put("nodeLog", nodeLog);
+        param.put("result", false);
+        param.put("backTaskName", "RECORDER");
+        param.put("attachs", "");//附件id
         param.put("_noc", 1);//权限管控
+        param.put("holdtime", 4311);//holdtime
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
                 .setMode(Request.Mode.POST)
-                .setWhat(LOAD_UPDATE_ASSIGNEE)
+                .setWhat(LOAD_DISAGREE)
                 .setParam(param);
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    public void loadTakeOver() {
-        iApproval.showLoading();
-        String url = "common/takeOverTask.action";
+    /*获取下一节点审批人 loading*/
+    public void judgeApprovers() {
+        String url = "common/getMultiNodeAssigns.action";
         Map<String, Object> param = new HashMap<>();
-        param.put("em_code", CommonUtil.getEmcode());
-        param.put("nodeId", record.nodeId);
-        param.put("needreturn", true);
+        param.put("caller", record.caller);
+        param.put("id", record.id);
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
-                .setMode(Request.Mode.POST)
-                .setWhat(LOAD_TAKE_OVER)
+                .setWhat(LOAD_NEXT_STEPOFP_INSTANCE)
                 .setParam(param);
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    //提交动作,增加判断节点是否有多人的情况
+    /*选择审批人后提交给他处理下一节点 submiting  end judgeApprovers */
     public void loadTakeOver2Other(String emCode) {
         iApproval.showLoading();
         String url = "common/takeOverTask.action";
@@ -287,26 +351,32 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 .setParam(param);
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
+    /**
+     * end 提交部分
+     */
 
-    public void loadNextProcess() {
-        iApproval.showToast(R.string.loadtonext_approval, R.color.load_submit);
+    /**
+     * start下拉部分
+     */
+    /*下拉当前节点数据  loading*/
+    private void loadCurrentNode() {
+        if (loading) return;
         iApproval.showLoading();
-        if (submiting) return;
-        submiting = true;
-        String url = "common/getNextProcess.action";
+        String url = "common/getCurrentNode.action";
         Map<String, Object> param = new HashMap<>();
-        param.put("taskId", record.nodeId);
-        param.put("_noc", 1);//权限管控
+        param.put("jp_nodeId", record.nodeId);
+        param.put("_noc", 1);
         Request.Bulider bulider = new Request.Bulider()
                 .setUrl(url)
-                .setMode(Request.Mode.POST)
-                .setWhat(LOAD_NEXT_PROCESS)
+                .setWhat(LOAD_CURRENT_NODE)
                 .setParam(param);
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    //下拉明细表数据
+    /*下拉明细表数据 loading*/
     private void loadDetailedList() {
+        if (loading) return;
+        loading = true;
         iApproval.showLoading();
         String url = "mobile/common/getformandgriddata.action";
         Map<String, Object> param = new HashMap<>();
@@ -320,21 +390,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-
-    public void judgeApprovers() {
-        String url = "common/getMultiNodeAssigns.action";
-        Map<String, Object> param = new HashMap<>();
-        param.put("caller", record.caller);
-        param.put("id", record.id);
-        Request.Bulider bulider = new Request.Bulider()
-                .setUrl(url)
-                .setWhat(LOAD_NEXT_STEPOFP_INSTANCE)
-                .setParam(param);
-        OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
-
-    }
-
-    //下拉审批要点
+    /*下拉审批要点 loading*/
     private void loadCustomSetupOfTask() {
         iApproval.showLoading();
         String url = "common/getCustomSetupOfTask.action";
@@ -348,7 +404,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    //获取历史节点数据
+    /*获取历史节点数据 loading*/
     private void loadJnodes() {
         iApproval.showLoading();
         String url = "common/getCurrentJnodes.action";
@@ -363,21 +419,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    //下拉当前节点数据
-    private void loadCurrentNode() {
-        iApproval.showLoading();
-        String url = "common/getCurrentNode.action";
-        Map<String, Object> param = new HashMap<>();
-        param.put("jp_nodeId", record.nodeId);
-        param.put("_noc", 1);
-        Request.Bulider bulider = new Request.Bulider()
-                .setUrl(url)
-                .setWhat(LOAD_CURRENT_NODE)
-                .setParam(param);
-        OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
-    }
-
-    /*获取文件名称*/
+    /*获取附件  */
     private void loadFilePaths(String attachs) {
         if (StringUtils.isEmpty(attachs) || "null".equals(attachs)) {
             return;
@@ -394,19 +436,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
         OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
     }
 
-    //结束流程
-    private void loadEndProcess() {
-        String url = "common/endProcessInstance.action";
-        Map<String, Object> param = new HashMap<>();
-        param.put("processInstanceId", record.processInstanceId);
-        param.put("holdtime", 435);
-        param.put("nodeId", record.nodeId);
-        Request.Bulider bulider = new Request.Bulider()
-                .setUrl(url)
-                .setWhat(LOAD_END_PROCESS)
-                .setParam(param);
-        OAHttpHelper.getInstance().requestHttp(bulider.bulid(), this);
-    }
+    /**
+     * end下拉部分
+     */
 
     @Override
     public void result(int what, boolean isJSON, String message, Bundle bundle) {
@@ -424,24 +456,28 @@ public class ApprovaPresenter implements OnHttpResultListener {
         }
     }
 
-
     @Override
     public void error(int what, String message, Bundle bundle) {
-        if (StringUtils.isEmpty(message)) return;
         iApproval.dimssLoading();
-        submiting = false;
-        if (what == LOAD_AGREE && message.contains("程序错误")) {
-            loadEndProcess();
+        switch (what) {
+            case LOAD_AGREE:
+                if (message.contains("程序错误")) {
+                    loadEndProcess();
+                }
+            case LOAD_TAKE_OVER:  /*提交部分*/
+            case LOAD_PROCESS_UPDATE:
+            case LOAD_NEXT_STEPOFP_INSTANCE:
+            case LOAD_TAKE_OVER_OTHER: submit = false;
+                break;
+        }
+        String errorKey = "exceptionInfo";
+        if (new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey))) {
+            LogUtil.i("new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey)");
+            String remain = getJson2Text(parseObject(message), errorKey);
+            LogUtil.i("remain=" + remain);
+            iApproval.showToast(remain, R.color.load_submit);
         } else {
-            String errorKey = "exceptionInfo";
-            if (new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey))) {
-                LogUtil.i("new JsonValidator().validate(message) && !StringUtils.isEmpty(getJson2Text(parseObject(message), errorKey)");
-                String remain = getJson2Text(parseObject(message), errorKey);
-                LogUtil.i("remain=" + remain);
-                iApproval.showToast(remain, R.color.load_submit);
-            } else {
-                iApproval.showToast(message, R.color.load_submit);
-            }
+            iApproval.showToast(message, R.color.load_submit);
         }
     }
 
@@ -457,7 +493,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                         try {
                             handlerFormandGriddataInThread(OACheckUtil.getJSONObject(object, "datas"));
                         } catch (Exception e) {
-                            submiting = false;
+                            loading = false;
                             e.printStackTrace();
                         }
                     }
@@ -474,7 +510,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 if (nextnode > 0) {
                     initLoad(nextnode);
                 } else {
-                    iApproval.showToast(getString(R.string.load_not_next_data), R.color.load_submit);
+                    iApproval.finish();
+                    ToastUtil.showToast(MyApplication.getInstance(), R.string.load_not_next_data);
                 }
                 break;
             case LOAD_UPDATE_ASSIGNEE:
@@ -486,7 +523,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
                     iApproval.showToast(getString(R.string.make_adeal_success) + getString(R.string.load_not_next_data), R.color.load_submit);
                     iApproval.finish();
                 }
-                submiting = false;
                 break;
             case LOAD_FILE_PATHS:
                 handlerEnclosure(OACheckUtil.getJsonArray(object, "files"));
@@ -507,20 +543,10 @@ public class ApprovaPresenter implements OnHttpResultListener {
                     iApproval.showToast(getString(R.string.make_adeal_success) + getString(R.string.load_not_next_data), R.color.load_submit);
                     iApproval.finish();
                 }
-                submiting = false;
                 break;
             case LOAD_AGREE:
                 iApproval.showToast(R.string.make_adeal_success, R.color.load_submit);
                 judgeApprovers();
-//                nextnode = OACheckUtil.getJsonIntager(object, "nextnode");
-//                if (nextnode > 0) {
-//                    iApproval.showToast(R.string.load_next_approval, R.color.load_submit);
-//                    initLoad(nextnode);
-//                } else {
-//                    iApproval.showToast(getString(R.string.make_adeal_success) + getString(R.string.load_not_next_data), R.color.load_submit);
-//                    iApproval.finish();
-//                }
-                submiting = false;
                 break;
             case LOAD_NEXT_STEPOFP_INSTANCE:
                 handlerNextStepoInstance(object);
@@ -544,7 +570,6 @@ public class ApprovaPresenter implements OnHttpResultListener {
 
 
     private void handlerNextStepoInstance(JSONObject object) {
-        LogUtil.i("handlerNextStepoInstance");
         if (object.containsKey("assigns")) {
             JSONArray array = OACheckUtil.getJsonArray(object, "assigns");
             JSONObject o = array.getJSONObject(0);
@@ -560,15 +585,13 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 loadNextProcess();
             }
         } else {
-            LogUtil.i("不存在");
             loadNextProcess();
         }
     }
 
     //处理当前结点信息
     private void handlerCurrentNode(JSONObject object) throws Exception {
-        if (object != null) {
-            String title = "";
+        if (object != null && !loading) {
             String instanceId = getJson2Text(object, "InstanceId");
             record.processInstanceId = instanceId;
             JSONObject currentnode = OACheckUtil.getJSONObject(object, "currentnode");
@@ -579,15 +602,15 @@ public class ApprovaPresenter implements OnHttpResultListener {
                 iApproval.nodeDealMan(nodeDealMan);
                 String nodeName = getJson2Text(currentnode, "jp_nodeName");
                 int keyValue = getJsonIntager(currentnode, "jp_keyValue");
-                title = getJson2Text(currentnode, "jp_name");
+                record.title = getJson2Text(currentnode, "jp_name");
                 record.status = OACheckUtil.getJson2Text(currentnode, "jp_status");
                 String caller = OACheckUtil.getJson2Text(currentnode, "jp_caller");
                 if (keyValue != 0) {
                     record.id = keyValue;
                 }
-                if (!StringUtils.isEmpty(title)) {
+                if (!StringUtils.isEmpty(record.title)) {
                     if (!StringUtils.isEmpty(recordName)) {
-                        title = recordName + " " + title;
+                        record.title = recordName + " " + record.title;
                     }
                 }
                 if (!StringUtils.isEmpty(caller)) {
@@ -604,11 +627,9 @@ public class ApprovaPresenter implements OnHttpResultListener {
             if (currentnode != null) {
                 record.needInputKeys = getJson2Text(button, "jt_neccessaryfield");
             }
-            showTitle(record.imid, title, -1);
             loadDetailedList();//获取明细表
-            loadCustomSetupOfTask();//获取审批要点
         } else {
-            submiting = false;
+            loading = false;
         }
     }
 
@@ -664,9 +685,11 @@ public class ApprovaPresenter implements OnHttpResultListener {
             OAHttpHelper.getInstance().post(new Runnable() {
                 @Override
                 public void run() {
-                    loadJnodes();
+                    loadCustomSetupOfTask();//获取审批要点
                 }
             });
+        } else {
+            iApproval.showToast(R.string.not_data_from_formandgrid);
         }
     }
 
@@ -802,21 +825,25 @@ public class ApprovaPresenter implements OnHttpResultListener {
                     }
                 }
                 setData2ListThread(Approval.NODES, approvals);
-                OAHttpHelper.getInstance().post(new Runnable() {
-                    @Override
-                    public void run() {
-                        int reId = -1;
-                        if ("未通过".equals(record.status)) {
-                            reId = R.drawable.unapproved;
-                        } else if ("已审批".equals(record.status)) {
-                            reId = R.drawable.approved;
-                        }
-                        showTitle(null, null, reId);
-                    }
-                });
+                int reId = -1;
+                if ("未通过".equals(record.status)) {
+                    reId = R.drawable.unapproved;
+                } else if ("已审批".equals(record.status)) {
+                    reId = R.drawable.approved;
+                }
+                Approval approval = new Approval(Approval.TITLE);
+                if (!StringUtils.isEmpty(record.title))
+                    approval.setCaption(record.title);
+                if (!StringUtils.isEmpty(record.imid))
+                    approval.setIdKey(record.imid);
+                if (reId > 0)
+                    approval.setId(reId);
+                List<Approval> titleApproval = new ArrayList<>();
+                titleApproval.add(approval);
+                setData2ListThread(Approval.TITLE, titleApproval);
+                loading = false;
             }
         });
-        submiting = false;
     }
 
     private void handlerEnclosure(final JSONArray array) throws Exception {
@@ -926,6 +953,12 @@ public class ApprovaPresenter implements OnHttpResultListener {
                         setData2ListThread(Approval.POINTS, pointsList);
                     }
                 }
+                OAHttpHelper.getInstance().post(new Runnable() {
+                    @Override
+                    public void run() {
+                        loadJnodes();
+                    }
+                });
             }
         });
 
@@ -996,6 +1029,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
     private int getImByCode(String emCode) {
         if (manager == null) manager = new DBManager();
         String whichsys = CommonUtil.getMaster();
+        if (StringUtils.isEmpty(emCode) || StringUtils.isEmpty(whichsys)) return 0;
         String[] selectionArgs = {emCode, whichsys};
         String selection = "em_code=? and whichsys=?";
         EmployeesEntity employeesEntity = manager.selectForEmployee(selectionArgs, selection);
@@ -1011,8 +1045,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
     }
 
     private boolean canSubmit() {
-        if (submiting) {
-            iApproval.showToast("正在提交请求,请不要重复提交", R.color.load_submit);
+        if (submit || loading) {
+            iApproval.showToast(R.string.submit_cannot_submit_again, R.color.load_submit);
             return false;
         }
         return true;
@@ -1117,51 +1151,37 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return formstore;
     }
 
-    public void showTitle(String imid, String title, int statusId) {
-        Approval approval;
-        if (!ListUtils.isEmpty(approvals) && approvals.get(0).getType() == Approval.TITLE) {
-            approval = approvals.get(0);
-        } else {
-            approval = new Approval(Approval.TITLE);
-            approvals.add(approval);
-        }
-        if (statusId > 0)
-            approval.setId(statusId);
-        if (!StringUtils.isEmpty(title))
-            approval.setCaption(title);
-        if (!StringUtils.isEmpty(imid))
-            approval.setIdKey(imid);
-        iApproval.showModels(approvals);
-    }
-
-
     private synchronized void setData2ListThread(int type, List<Approval> newApprovals) {
-        LogUtil.i("come to setData2ListThread=" + type);
         final List<Approval> merges = new ArrayList<>();
         if (!ListUtils.isEmpty(approvals)) {
-            boolean added = false;
-            for (int i = 0; i < approvals.size(); i++) {
-                int oldType = approvals.get(i).getType();
-                if (!added && ((oldType != Approval.TAG && oldType > type)
-                        || oldType == Approval.TAG && approvals.size() > i + 1 && approvals.get(i + 1).getType() > type)) {
-                    merges.addAll(i, newApprovals);
-                    added = true;
+            if (type == Approval.TITLE) {
+                if (approvals.get(0).getType() == Approval.TITLE) {
+                    approvals.remove(0);
                 }
-                merges.add(approvals.get(i));
-            }
-            LogUtil.i("added=" + added);
-            if (!added) {
                 merges.addAll(newApprovals);
+                merges.addAll(approvals);
+            } else {
+                boolean added = false;
+                for (int i = 0; i < approvals.size(); i++) {
+                    int oldType = approvals.get(i).getType();
+                    if (!added && ((oldType != Approval.TAG && oldType > type)
+                            || oldType == Approval.TAG && approvals.size() > i + 1 && approvals.get(i + 1).getType() > type)) {
+                        merges.addAll(i, newApprovals);
+                        added = true;
+                    }
+                    merges.add(approvals.get(i));
+                }
+                if (!added) {
+                    merges.addAll(newApprovals);
+                }
             }
         } else {
             merges.addAll(newApprovals);
         }
         approvals = merges;
-        LogUtil.i("end of setData2ListThread");
         OAHttpHelper.getInstance().post(new Runnable() {
             @Override
             public void run() {
-                LogUtil.i("showModel");
                 iApproval.showModels(merges);
 
             }

+ 2 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectCollisionPresenter.java

@@ -26,6 +26,7 @@ import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectActiveView;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CommonInterface;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CompanyHandlerInfoUtil;
@@ -53,7 +54,6 @@ public class SelectCollisionPresenter {
         this.mActivity= (Activity) iSelectActiveView;
     }
 
-
     public void start(SelectCollisionTurnBean selectBean) {
         if (selectBean == null) {
             new NullPointerException("Intent cannot be Null");
@@ -69,14 +69,13 @@ public class SelectCollisionPresenter {
         if (!StringUtils.isEmpty(selectBean.getSureText()))
             iSelectActiveView.showSureText(selectBean.getSureText());
         if (ListUtils.isEmpty(selects)) {
-            if(selectBean.getTitle().equals(mActivity.getString(R.string.select_share_friend))){//分享好友
+            if(selectBean.getTitle().equals(OACheckUtil.getString(R.string.select_share_friend))){//分享好友
                 //企业架构+UU好友
                 loadShareFriendInThread();
             }else{
                 //企业架构
                 loadDataInThread();
             }
-            
         }
         else {
             setUser2Sort(selects, true);

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


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


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


+ 10 - 0
WeiChat/src/main/res/drawable/shape_item_data_inquiry_blue.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="oval">
+
+    <solid android:color="@color/LightBlue"/>
+
+    <size
+        android:width="20dp"
+        android:height="20dp"/>
+</shape>

+ 10 - 0
WeiChat/src/main/res/drawable/shape_item_data_inquiry_green.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="oval">
+
+    <solid android:color="@color/light_green"/>
+
+    <size
+        android:width="20dp"
+        android:height="20dp"/>
+</shape>

+ 9 - 0
WeiChat/src/main/res/layout/action_data_inquiry_list.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/data_inquiry_searchview"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+</com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView>

+ 89 - 0
WeiChat/src/main/res/layout/activity_data_inquiry.xml

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              xmlns:tools="http://schemas.android.com/tools"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:background="@color/bg_underlying"
+              android:orientation="vertical"
+              android:padding="@dimen/activity_vertical_margin">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="30dp"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:maxLines="1"
+            android:text="------------------------------------------"
+            android:textColor="@color/titleBlue"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:gravity="center"
+            android:singleLine="true"
+            android:text="@string/common_service_query"
+            android:textColor="@color/titleBlue"
+            android:textSize="16sp"/>
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:maxLines="1"
+            android:text="------------------------------------------"
+            android:textColor="@color/titleBlue"/>
+    </LinearLayout>
+
+    <com.xzjmyk.pm.activity.view.MyGridView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:numColumns="3"
+        android:scrollbars="none"
+        />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="30dp"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:maxLines="1"
+            android:text="------------------------------------------"
+            android:textColor="@color/titleBlue"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:gravity="center"
+            android:singleLine="true"
+            android:text="@string/more_queries"
+            android:textColor="@color/titleBlue"
+            android:textSize="16sp"/>
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:maxLines="1"
+            android:text="------------------------------------------"
+            android:textColor="@color/titleBlue"/>
+    </LinearLayout>
+
+</LinearLayout>

+ 37 - 0
WeiChat/src/main/res/layout/activity_data_inquiry_list.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical">
+
+    <ListView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <com.xzjmyk.pm.activity.view.MyGridView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@color/white"
+            android:numColumns="2"/>
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@color/white"
+            android:gravity="center"
+            android:text="清空历史记录"
+            android:textColor="@color/LightBlue"
+            android:padding="10dp"
+            android:textSize="16sp"/>
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="#40000000"
+            />
+    </LinearLayout>
+</RelativeLayout>

+ 27 - 0
WeiChat/src/main/res/layout/item_list_data_inquiry.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              xmlns:tools="http://schemas.android.com/tools"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:orientation="vertical">
+
+    <TextView
+        android:layout_width="60dp"
+        android:layout_height="60dp"
+        android:background="@drawable/shape_item_data_inquiry_blue"
+        android:gravity="center"
+        android:textColor="@color/white"
+        android:textSize="18sp"
+        tools:text="物"
+        />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="6dp"
+        android:gravity="center"
+        android:textSize="14sp"
+        tools:text="物料资料"
+        />
+</LinearLayout>

+ 16 - 14
WeiChat/src/main/res/layout/pop_crm_list.xml

@@ -4,21 +4,23 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    app:sl_shadowRadius="3dp"
-    app:sl_shadowColor="@color/shadow"
+    app:sl_cornerRadius="0dp"
     app:sl_dx="-1dp"
     app:sl_dy="3dp"
-    app:sl_cornerRadius="0dp">
-<LinearLayout
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@drawable/shape_pop_ll"
-    android:padding="0.5dp"
-    android:orientation="vertical">
-    <ListView
+    app:sl_shadowColor="@color/shadow"
+    app:sl_shadowRadius="3dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:dividerHeight="0dp"
-        android:id="@+id/mList"
-        style="@style/ListViewBasic"></ListView>
-</LinearLayout>
+        android:background="@drawable/shape_pop_ll"
+        android:orientation="vertical"
+        android:padding="0.5dp">
+
+        <ListView
+            android:id="@+id/mList"
+            style="@style/ListViewBasic"
+            android:layout_height="wrap_content"
+            android:dividerHeight="0dp"></ListView>
+    </LinearLayout>
 </com.xzjmyk.pm.activity.view.shadow.ShadowLayout>

+ 6 - 0
WeiChat/src/main/res/values-en/strings.xml

@@ -1420,4 +1420,10 @@
     <string name = "to_login"> existing account? Login </string>
     <string name = "input_phone_number"> Please enter the phone number </string>
     <string name = "input_name"> Please enter a name </string>
+
+
+    <!--工作->数据查询-->
+    <string name="common_service_query">常用业务查询</string>
+    <string name="more_queries">更多查询</string>
+    <string name="select_query_service">选择查询业务</string>
 </resources>

+ 6 - 0
WeiChat/src/main/res/values-zh-rCN/strings.xml

@@ -1532,4 +1532,10 @@
     <string name="to_login">已有账户?登录</string>
     <string name="input_phone_number">请输入手机号</string>
     <string name="input_name">请输入姓名</string>
+
+
+    <!--工作->数据查询-->
+    <string name="common_service_query">常用业务查询</string>
+    <string name="more_queries">更多查询</string>
+    <string name="select_query_service">选择查询业务</string>
 </resources>

+ 7 - 1
WeiChat/src/main/res/values-zh-rTW/strings.xml

@@ -821,7 +821,7 @@
     <string name="mark_unread">標為已讀</string>
     <string name="msg_subscribe_data">查看企業數據</string>
     <!--通讯录-->
-     <string name="contact_title">通訊錄</string>
+    <string name="contact_title">通訊錄</string>
     <string name="contact_company">企業架構</string>
     <string name="contact_business">商務群</string>
     <string name="contact_friend">UU好友</string>
@@ -1521,4 +1521,10 @@
     <string name="to_login">已有賬戶?登錄</string>
     <string name="input_phone_number">請輸入手機號</string>
     <string name="input_name">請輸入姓名</string>
+
+
+    <!--工作-数据查询-->
+    <string name="common_service_query">常用业务查询</string>
+    <string name="more_queries">更多查询</string>
+    <string name="select_query_service">选择查询业务</string>
 </resources>

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

@@ -1854,6 +1854,8 @@
     <string name="approval_opinion_error">审批意见未填写或填写不正确</string>
     <string name="enclosure">附件</string>
     <string name="subtabulation">副表</string>
+    <string name="not_data_from_formandgrid">没有获取到明细表数据</string>
+    <string name="submit_cannot_submit_again">正在提交请求,请不要重复提交</string>
 
     <string name="person_register">个人注册</string>
     <string name="phone_number">手机号</string>
@@ -1862,6 +1864,9 @@
     <string name="to_login">已有账户?登录</string>
     <string name="input_phone_number">请输入手机号</string>
     <string name="input_name">请输入姓名</string>
-    
-    
+
+    <!--工作->数据查询-->
+    <string name="common_service_query">常用业务查询</string>
+    <string name="more_queries">更多查询</string>
+    <string name="select_query_service">选择查询业务</string>
 </resources>