Procházet zdrojové kódy

提交类型 修改bug
提交内容 修改单据详情出现不显示人员的问题,修改设备管理相关逻辑功能

Bitliker před 7 roky
rodič
revize
d65161ca3f

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Mon Mar 05 14:00:03 CST 2018
-debugName=274
+#Tue Mar 06 14:13:46 CST 2018
+debugName=305
 versionName=621
-debugCode=274
+debugCode=305
 versionCode=160

+ 7 - 1
app_core/common/src/main/java/com/core/net/ProgressDownloader.java

@@ -1,5 +1,8 @@
 package com.core.net;
 
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -84,7 +87,10 @@ public class ProgressDownloader {
         }
     }
 
-    private void save(Response response, long startsPoint) {
+    protected void save(Response response, long startsPoint) {
+      String fileName=  response.headers().get("Content-Disposition");
+        LogUtil.i("fileName="+fileName);
+        LogUtil.i("response.headers()="+ JSON.toJSONString(response.headers()));
         ResponseBody body = response.body();
         InputStream in = body.byteStream();
         FileChannel channelOut = null;

+ 23 - 7
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/MessageWebActivity.java

@@ -32,6 +32,7 @@ import com.core.utils.CommonUtil;
 import com.core.utils.IntentUtils;
 import com.core.utils.ToastUtil;
 import com.modular.appmessages.R;
+import com.module.recyclerlibrary.ui.refresh.BaseRefreshLayout;
 import com.module.recyclerlibrary.ui.refresh.webempty.EmptyRefreshLayout;
 import com.umeng.socialize.ShareAction;
 import com.umeng.socialize.bean.SHARE_MEDIA;
@@ -48,7 +49,7 @@ public class MessageWebActivity extends BaseActivity {
     protected EmptyRefreshLayout mEmptyRefreshLayout;
     protected ProgressBar progressBar;
     protected String url;
-    private boolean needCookie;
+    protected boolean needCookie;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -131,6 +132,17 @@ public class MessageWebActivity extends BaseActivity {
     }
 
     protected void initView() {
+        mEmptyRefreshLayout.setOnRefreshListener(new BaseRefreshLayout.onRefreshListener() {
+            @Override
+            public void onRefresh() {
+                mEmptyRefreshLayout.stopRefresh();
+            }
+
+            @Override
+            public void onLoadMore() {
+
+            }
+        });
         webViewRefresh.getSettings().setJavaScriptEnabled(true);
         webViewRefresh.getSettings().setSupportZoom(true);
         webViewRefresh.getSettings().setBuiltInZoomControls(true);
@@ -165,15 +177,19 @@ public class MessageWebActivity extends BaseActivity {
         };
     }
 
+    protected boolean loadUrlViewClient(WebView view, String url){
+        LogUtil.i("shouldOverrideUrlLoading url=" + url);
+        if (needCookie) {
+            synCookies(ct, url);
+        }
+        view.loadUrl(url);
+        return true;
+    }
+
     protected WebViewClient getWebViewClient() {
         return new WebViewClient() {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
-                LogUtil.i("shouldOverrideUrlLoading url=" + url);
-                if (needCookie) {
-                    synCookies(ct, url);
-                }
-                view.loadUrl(url);
-                return true;
+               return loadUrlViewClient(view,url);
             }
 
             @Override

+ 100 - 12
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/MsgThirdWebActivity.java

@@ -1,15 +1,27 @@
 package com.modular.appmessages.activity;
 
+import android.Manifest;
 import android.content.Intent;
+import android.text.TextUtils;
 import android.view.View;
 import android.webkit.JsResult;
 import android.webkit.WebChromeClient;
 import android.webkit.WebView;
 
 import com.common.LogUtil;
+import com.core.net.ProgressResponseBody;
+import com.core.utils.CommonUtil;
 import com.core.utils.IntentUtils;
+import com.core.utils.OpenFilesUtils;
+import com.core.utils.ToastUtil;
+import com.core.widget.CustomProgressDialog;
+import com.modular.appmessages.R;
+import com.modular.apputils.network.FileDownloader;
 import com.uas.appworks.OA.erp.activity.CommonDocDetailsActivity;
 
+import java.io.File;
+import java.io.IOException;
+
 /**
  * Created by Bitlike on 2018/1/16.
  */
@@ -29,19 +41,16 @@ public class MsgThirdWebActivity extends MessageWebActivity {
 
             @Override
             public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
-                LogUtil.i("onJsAlert url=" + url);
-                LogUtil.i("onJsAlert message=" + message);
-                LogUtil.i("onJsAlert result=" + result.toString());
                 Intent intent = getIntent();
-                if (intent != null  ) {
-                   String title= intent.getStringExtra(IntentUtils.KEY_TITLE);
-                   if (title!=null&&title.equals("审批知会")){
-                       String caller = intent.getStringExtra("caller");
-                       int keyValue = intent.getIntExtra("keyValue", 0);
-                       LogUtil.i("onJsAlert caller=" + caller);
-                       LogUtil.i("onJsAlert keyValue=" + keyValue);
-                       startActivity(caller, keyValue);
-                   }
+                if (intent != null) {
+                    String title = intent.getStringExtra(IntentUtils.KEY_TITLE);
+                    if (title != null && title.equals("审批知会")) {
+                        String caller = intent.getStringExtra("caller");
+                        int keyValue = intent.getIntExtra("keyValue", 0);
+                        LogUtil.i("onJsAlert caller=" + caller);
+                        LogUtil.i("onJsAlert keyValue=" + keyValue);
+                        startActivity(caller, keyValue);
+                    }
                 }
                 result.cancel();
                 return true;
@@ -49,6 +58,85 @@ public class MsgThirdWebActivity extends MessageWebActivity {
         };
     }
 
+    @Override
+    protected boolean loadUrlViewClient(WebView view, String url) {
+        LogUtil.i("shouldOverrideUrlLoading url=" + url);
+        if (needCookie) {
+            synCookies(ct, url);
+        }
+        String downLoadUrl = CommonUtil.getAppBaseUrl(ct) + "common/downloadbyId.action";
+        if (!TextUtils.isEmpty(url)&&url.startsWith(downLoadUrl)) {
+            requestPermissionByLoadFile(url);
+        } else {
+            view.loadUrl(url);
+        }
+        return true;
+    }
+
+
+    private void requestPermissionByLoadFile(final String url){
+        requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, new Runnable() {
+            @Override
+            public void run() {
+                downFile(url);
+            }
+        }, new Runnable() {
+            @Override
+            public void run() {
+                ToastUtil.showToast(ct, R.string.not_system_permission);
+            }
+        });
+    }
+    private void downFile(String downloadUrl) {
+        final CustomProgressDialog progressDialog = CustomProgressDialog.createDialog(ct);
+        progressDialog.setTitile("正在预览");
+        progressDialog.setMessage("正在生成附件预览,请勿关闭程序");
+        if (progressDialog != null && ct != null) {
+            progressDialog.show();
+        }
+        FileDownloader fileDownloader = new FileDownloader(downloadUrl, new FileDownloader.OnDownloaderListener() {
+            @Override
+            public void onProgress(long allProress, long progress) {
+                LogUtil.i("allProress=" + (allProress / 1000) + "k" + "progress=" + (progress / 1000) + "k");
+
+            }
+
+            @Override
+            public void onSuccess(final File file) {
+                LogUtil.i("onSuccess=" + (file == null ? "" : file.getPath()));
+                if (ct != null) {
+                    if (progressDialog != null) {
+                        progressDialog.dismiss();
+                    }
+                    try {
+                        requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, new Runnable() {
+                            @Override
+                            public void run() {
+                                OpenFilesUtils.openCommonFils(ct, file);
+                            }
+                        }, new Runnable() {
+                            @Override
+                            public void run() {
+                                ToastUtil.showToast(ct, R.string.not_system_permission);
+                            }
+                        });
+                    } catch (Exception e) {
+
+                    }
+                }
+
+            }
+
+            @Override
+            public void onFailure(String exception) {
+                LogUtil.i("onFailure=" + (exception == null ? "" : exception));
+                if (ct != null) {
+                    ToastUtil.showToast(ct, exception);
+                }
+            }
+        });
+        fileDownloader.download(0L);
+    }
 
     private void startActivity(String caller, int keyValue) {
         startActivity(new Intent(ct, CommonDocDetailsActivity.class)

+ 208 - 0
app_modular/apputils/src/main/java/com/modular/apputils/network/FileDownloader.java

@@ -0,0 +1,208 @@
+package com.modular.apputils.network;
+
+import android.os.Environment;
+import android.text.TextUtils;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
+import com.core.app.MyApplication;
+import com.core.net.ProgressDownloader;
+import com.core.net.ProgressResponseBody;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.RandomAccessFile;
+import java.nio.MappedByteBuffer;
+import java.nio.channels.FileChannel;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Interceptor;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.ResponseBody;
+
+/**
+ * Created by Bitlike on 2018/3/6.
+ */
+
+public class FileDownloader {
+    private String url;
+    private OkHttpClient client;
+    protected File destination;
+    private Call call;
+    private OnDownloaderListener onDownloaderListener;
+
+    public FileDownloader(String url, OnDownloaderListener onDownloaderListener) {
+        this(url, null, onDownloaderListener);
+
+    }
+
+    public FileDownloader(String url, File destination, final OnDownloaderListener onDownloaderListener) {
+        this.url = url;
+        this.destination = destination;
+        this.onDownloaderListener = onDownloaderListener;
+        client = getProgressClient(new ProgressResponseBody.ProgressListener() {
+            private long contentLength;
+
+            @Override
+            public void onPreExecute(long contentLength) {
+                this.contentLength = contentLength;
+            }
+
+            @Override
+            public void update(long totalBytes, boolean done) {
+                if (onDownloaderListener != null) {
+                    onDownloaderListener.onProgress(this.contentLength, totalBytes);
+                    if (done) {
+                        onDownloaderListener.onSuccess(FileDownloader.this.destination);
+                    }
+                }
+            }
+        });
+    }
+
+    //每次下载需要新建新的Call对象
+    private Call newCall(long startPoints) {
+        Request request = new Request.Builder()
+                .url(url)
+                .header("RANGE", "bytes=" + startPoints + "-")//断点续传要用到的,指示下载的区间
+                .build();
+        return client.newCall(request);
+    }
+
+    public OkHttpClient getProgressClient(final ProgressResponseBody.ProgressListener progressListener) {
+        // 拦截器,用上ProgressResponseBody
+        Interceptor interceptor = new Interceptor() {
+            @Override
+            public Response intercept(Chain chain) throws IOException {
+                Response originalResponse = chain.proceed(chain.request());
+                return originalResponse.newBuilder()
+                        .body(new ProgressResponseBody(originalResponse.body(), progressListener))
+                        .build();
+            }
+        };
+
+        return new OkHttpClient.Builder()
+                .addNetworkInterceptor(interceptor)
+                .build();
+    }
+
+    // startsPoint指定开始下载的点
+    public void download(final long startsPoint) {
+        call = newCall(startsPoint);
+        call.enqueue(new Callback() {
+            @Override
+            public void onFailure(Call call, IOException e) {
+                if (onDownloaderListener != null) {
+                    onDownloaderListener.onFailure(e != null ? e.getMessage() : "IOException");
+                }
+            }
+
+            @Override
+            public void onResponse(Call call, Response response) throws IOException {
+                save(response, startsPoint);
+            }
+        });
+    }
+
+    public void pause() {
+        if (call != null) {
+            call.cancel();
+        }
+    }
+
+
+    private File getDestinationFile(Response response) throws IOException {
+        String disposition = response.headers().get("Content-Disposition");
+        if (!TextUtils.isEmpty(disposition) && disposition.contains("filename=")) {
+            String[] fileNames = disposition.split("filename=");
+            if (fileNames != null && fileNames.length > 1) {
+                String fileName = fileNames[1];
+                if (!TextUtils.isEmpty(fileName)) {
+                    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
+                        final String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/uu/download";
+                        File file = new File(path);
+                        if (!file.exists()) {
+                            file.mkdirs();
+                        }
+                        file = new File(path + "/" + fileName);
+                        if (!file.exists()) {
+                            file.createNewFile();
+                        } else {
+                            if (onDownloaderListener != null) {
+                                onDownloaderListener.onSuccess(file);
+                            }
+                            return null;
+                        }
+                        return file;
+                    } else {
+                        Toast.makeText(MyApplication.getInstance(), "请先插入SD卡", Toast.LENGTH_SHORT).show();
+                    }
+                }
+            }
+        }
+        if (onDownloaderListener != null) {
+            onDownloaderListener.onFailure("file is null");
+        }
+        return null;
+    }
+
+
+    protected void save(Response response, long startsPoint) {
+        if (this.destination == null) {
+            try {
+                this.destination = getDestinationFile(response);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+
+        if (this.destination == null) {
+            return;
+        }
+        ResponseBody body = response.body();
+        InputStream in = body.byteStream();
+        FileChannel channelOut = null;
+        // 随机访问文件,可以指定断点续传的起始位置
+        RandomAccessFile randomAccessFile = null;
+        try {
+            randomAccessFile = new RandomAccessFile(destination, "rwd");
+            //Chanel NIO中的用法,由于RandomAccessFile没有使用缓存策略,直接使用会使得下载速度变慢,亲测缓存下载3.3秒的文件,用普通的RandomAccessFile需要20多秒。
+            channelOut = randomAccessFile.getChannel();
+            // 内存映射,直接使用RandomAccessFile,是用其seek方法指定下载的起始位置,使用缓存下载,在这里指定下载位置。
+            MappedByteBuffer mappedBuffer = channelOut.map(FileChannel.MapMode.READ_WRITE, startsPoint, body.contentLength());
+            byte[] buffer = new byte[1024];
+            int len;
+            while ((len = in.read(buffer)) != -1) {
+                mappedBuffer.put(buffer, 0, len);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                in.close();
+                if (channelOut != null) {
+                    channelOut.close();
+                }
+                if (randomAccessFile != null) {
+                    randomAccessFile.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public interface OnDownloaderListener {
+        void onProgress(long allProress, long progress);
+
+        void onSuccess(File file);
+
+        void onFailure(String exception);
+    }
+
+}

+ 47 - 29
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java

@@ -10,6 +10,7 @@ import android.os.Message;
 import android.support.v7.app.AlertDialog;
 import android.text.Editable;
 import android.text.InputType;
+import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -35,6 +36,7 @@ import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.RegexUtil;
 import com.common.data.StringUtil;
+import com.common.data.TextUtil;
 import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.model.SelectBean;
@@ -130,9 +132,10 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                     if (!ListUtils.isEmpty(mDatasNet)) mDatasNet.clear();
                     if (StringUtil.isEmpty(result)) return;
 
-
-                    JSONArray forms = JSON.parseObject(result).getJSONObject("data").getJSONArray("formdetail");
-                    grids = JSON.parseObject(result).getJSONObject("data").getJSONArray("gridetail");
+                    JSONObject loadJsonObject = JSON.parseObject(result).getJSONObject("data");
+                    JSONArray forms = JSONUtil.getJSONArray(loadJsonObject, "formdetail");
+                    JSONObject formData = JSONUtil.getJSONObject(loadJsonObject, "formData");
+                    grids = JSONUtil.getJSONArray(loadJsonObject, "gridetail");
                     //主表分组
                     HashSet<String> set = new HashSet<String>();
                     HashSet<Integer> detail = new HashSet<Integer>();
@@ -158,8 +161,6 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                             ArrayList<Data> itemData = new ArrayList<>();
                             ArrayList<Data> itemDataNet = new ArrayList<>();//传输给配置界面
                             String value = iter.next();
-
-
                             for (int i = 0; i < forms.size(); i++) {
                                 JSONObject items = forms.getJSONObject(i);
                                 Data data = new Data();
@@ -169,9 +170,18 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                 data.setDetno(items.getIntValue("fd_detno"));
                                 data.setMaxlength(String.valueOf(items.getIntValue("fd_maxlength")));
                                 data.setFdid(items.getIntValue("fd_id"));
-                                data.setValue(items.getString("fd_value"));
-
 
+                                if ("ID".equals(data.getName())){
+                                    formidkey=data.getField();
+                                }
+                                if (formData == null || formData.isEmpty()) {
+                                    data.setValue(items.getString("fd_value"));
+                                } else {
+                                    String values=JSONUtil.getText(formData,data.getField().toUpperCase());
+//                                    LogUtil.i("keys="+keys);
+                                    LogUtil.i("values="+values);
+                                    data.setValue(values);
+                                }
                                 if (startDate.equals(items.getString("fd_field"))) {
                                     if (StringUtil.isEmpty(items.getString("fd_value"))) {
                                         data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
@@ -184,19 +194,20 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                     }
                                     endDate_v = data.getValue();
                                 }
-                                if (data.getName().equals("设备编号")) {
-                                    data.setValue(noCode);
-                                } else if (data.getName().equals("送检人编号") || data.getName().equals("申请人编号") || data.getName().equals("送检人编号") || data.getName().equals("人员编号")) {
-                                    data.setValue(CommonUtil.getEmcode());
-                                } else if (data.getName().equals("送检人名称") ||data.getName().equals("申请人名称") || data.getName().equals("送检人名称") || data.getName().equals("人员名称")) {
-                                    data.setValue(CommonUtil.getName());
-                                }else if ("dc_emcode".equals(data.getField())){
-                                    data.setValue(CommonUtil.getEmcode());
-                                }else if ("dc_emname".equals(data.getField())){
-                                    data.setValue(CommonUtil.getName());
+                                //添加默认值
+                                if (TextUtils.isEmpty(data.getValue())){
+                                    if (data.getName().equals("设备编号")) {
+                                        data.setValue(noCode);
+                                    } else if (data.getName().equals("送检人编号") || data.getName().equals("申请人编号") || data.getName().equals("送检人编号") || data.getName().equals("人员编号")) {
+                                        data.setValue(CommonUtil.getEmcode());
+                                    } else if (data.getName().equals("送检人名称") || data.getName().equals("申请人名称") || data.getName().equals("送检人名称") || data.getName().equals("人员名称")) {
+                                        data.setValue(CommonUtil.getName());
+                                    } else if ("dc_emcode".equals(data.getField())) {
+                                        data.setValue(CommonUtil.getEmcode());
+                                    } else if ("dc_emname".equals(data.getField())) {
+                                        data.setValue(CommonUtil.getName());
+                                    }
                                 }
-
-
                                 if (data.getField().equals("dc_class")) {
                                     JSONArray combostore = JSONUtil.getJSONArray(items, "COMBOSTORE");
                                     if (!ListUtils.isEmpty(combostore)) {
@@ -209,8 +220,6 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                         }
                                     }
                                 }
-
-
                                 data.setGroupId(formGroupId);
                                 data.setGroup(items.getString("fd_group"));
                                 data.setIsDefault(items.getIntValue("mfd_isdefault"));
@@ -595,8 +604,6 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
             @Override
             public void run() {
                 if (mContext == null) return;
-                LogUtil.d("当前线程是:" + CommonUtil.isMainThread());
-                LogUtil.i("va_id=" + va_id);
                 if (formid == 0) {
                     startActivity(new Intent(mContext, CommonDocDetailsActivity.class)
                             .putExtra("caller", caller)
@@ -607,6 +614,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                     startActivity(new Intent(mContext, CommonDocDetailsActivity.class)
                             .putExtra("caller", caller)
                             .putExtra("keyValue", formid)
+                            .putExtra("device", true)
                             .putExtra("update", "1")
                             .putExtra("status", "已提交"));
                 }
@@ -644,8 +652,8 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
             if (!StringUtil.isEmpty(intent.getStringExtra("title"))) {
                 getSupportActionBar().setTitle(intent.getStringExtra("title"));
             }
-            LogUtil.d("更新caller:" + caller);
-            LogUtil.d("更新id:" + formid);
+            LogUtil.i("更新caller:" + caller);
+            LogUtil.i("更新id:" + formid);
         }
     }
 
@@ -720,9 +728,19 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
         if (caller == null) {
             caller = "DeviceChange!Use";
         }
-        String url = CommonUtil.getAppBaseUrl(ct) + "mobile/common/getFormPanel.action";
+        String url = null;
+        if (formid == 0) {
+            url = CommonUtil.getAppBaseUrl(ct) + "mobile/common/getFormPanel.action";
+        } else {
+            url = CommonUtil.getAppBaseUrl(ct) + "mobile/common/getFormPanelAndData.action";
+        }
         Map<String, Object> params = new HashMap<>();
         params.put("caller", caller);
+        if (formid != 0) {
+            params.put("condition", "1=1");
+            params.put("id", formid);
+        }
+        params.put("caller", caller);
         params.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
@@ -734,8 +752,9 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
         if (v.getId() == R.id.ll_item_add) {
             addGridItemData();
         } else if (v.getId() == R.id.click_btn) {
-            if (formid == 0)
+            if (formid == 0) {
                 commit();
+            }
         } else if (v.getId() == R.id.btn_update) {
             updata();
         }
@@ -2283,7 +2302,6 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                 }
             }
             LogUtil.prinlnLongMsg("update", "forStore:" + forStore.toString());
-
             updateData(forStore.toString(), "[]");
         }
 
@@ -2306,7 +2324,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
         }
         progressDialog.show();
         btn_update.setEnabled(false);
-        String url = CommonUtil.getAppBaseUrl(ct) + "mobile/device/saveAndSubmitDeviceChange.action";
+        String url = CommonUtil.getAppBaseUrl(ct) + "mobile/device/updateAndSubmitDeviceChange.action";
         Map<String, Object> params = new HashMap<>();
         params.put("caller", caller);
         params.put("formStore", formStore);

+ 74 - 47
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/CommonDocDetailsActivity.java

@@ -48,6 +48,7 @@ import com.core.widget.MyListView;
 import com.core.widget.SquareCenterImageView;
 import com.core.widget.view.MyGridView;
 import com.core.app.AppConstant;
+import com.uas.appworks.CRM.erp.activity.DeviceDataFormAddActivity;
 import com.uas.appworks.R;
 import com.nostra13.universalimageloader.core.ImageLoader;
 import com.uas.appworks.OA.erp.activity.form.DataFormDetailActivity;
@@ -363,20 +364,22 @@ public class CommonDocDetailsActivity extends BaseActivity {
                 case DELETE_DOC_REQUEST:
                     String del_result = msg.getData().getString("result");
                     LogUtil.prinlnLongMsg("del_result", del_result);
-                    Toast.makeText(getApplicationContext(), getString(R.string.common_delete), Toast.LENGTH_LONG).show();
+                    Toast.makeText(getApplicationContext(), getString(R.string.delete_all_succ), Toast.LENGTH_LONG).show();
                     progressDialog.dismiss();
                     FormListSelectActivity.isdelete = true;
                     FormListSelectActivity.reload = false;
+                    setResult(0x21);
                     finish();
                     break;
                 case NEW_DELETE_DOC_REQUEST:
                     if (msg.getData() != null) {
                         String new_delete_doc_result = msg.getData().getString("result");
                         LogUtil.prinlnLongMsg("new_delete_doc_result", new_delete_doc_result);
-                        Toast.makeText(getApplicationContext(), getString(R.string.common_delete), Toast.LENGTH_LONG).show();
+                        Toast.makeText(getApplicationContext(), getString(R.string.delete_all_succ), Toast.LENGTH_LONG).show();
                         progressDialog.dismiss();
                         FormListSelectActivity.isdelete = true;
                         FormListSelectActivity.reload = false;
+                        setResult(0x21);
                         finish();
                     }
                     break;
@@ -386,7 +389,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
                             String result = msg.getData().getString("result");
                             LogUtil.prinlnLongMsg("RESUBMITTED_message", result);
 //                            Toast.makeText(ct, "单据反提交成功", Toast.LENGTH_SHORT).show();
-                            startActivity(new Intent(CommonDocDetailsActivity.this, DataFormDetailActivity.class)
+                            startActivity(new Intent(CommonDocDetailsActivity.this, device ? DeviceDataFormAddActivity.class : DataFormDetailActivity.class)
                                     .putExtra("caller", mCaller)
                                     .putExtra("id", mkeyValue)
                                     .putExtra("submittype", "resubmit")
@@ -479,7 +482,6 @@ public class CommonDocDetailsActivity extends BaseActivity {
      * @param mkeyValue
      */
     private void DeleteComDocRequest(String mCaller, int mkeyValue) {
-        Map<String, Object> formStoreMap = new HashMap<>();
         HashMap<String, Object> params = new HashMap<>();
         params.put("caller", mCaller);
         params.put("id", mkeyValue);
@@ -653,6 +655,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
         }
         if (device) {
             LogUtil.i("real_status=" + real_status);
+//            resanddel_ll.setVisibility(View.GONE);
             if (real_status.equals("已审核") && !StringUtil.isEmpty(mCaller) && (mCaller.equals("DeviceChange!Use") || mCaller.equals("DeviceChange!Inspect"))) {
                 resanddel_ll.setVisibility(View.GONE);
                 sureTv.setVisibility(View.VISIBLE);
@@ -926,7 +929,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
                         name_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
                     }
                 } else {
-                    String em_name = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_emname");
+                    String em_name = CommonUtil.getName();
                     name_tv.setText(em_name);
                     String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
                     AvatarHelper.getInstance().display(loginUserId, photo_im, true, false);
@@ -934,6 +937,11 @@ public class CommonDocDetailsActivity extends BaseActivity {
             } catch (Exception e) {
                 e.printStackTrace();
             }
+        }else{
+            String em_name = CommonUtil.getName();
+            name_tv.setText(em_name);
+            String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+            AvatarHelper.getInstance().display(loginUserId, photo_im, true, false);
         }
 
         // 界面下面的按钮操作
@@ -947,16 +955,17 @@ public class CommonDocDetailsActivity extends BaseActivity {
             resubmit_ll.setOnClickListener(new View.OnClickListener() { // 重新提交
                 @Override
                 public void onClick(View v) {
-
-                    if (ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())
+                    if (device && StringUtil.getText(status_tv).equals(getString(R.string.status_pending))) {
+                        reSubmit();
+                    } else if (ListUtils.isEmpty(mCommonApprovalFlowBean.getProcesss())
                             && ListUtils.isEmpty(mCommonApprovalFlowBean.getNodes())
                             && ListUtils.isEmpty(mCommonApprovalFlowBean.getData())) {  //在录入状态不反提交
-
-                        startActivity(new Intent(CommonDocDetailsActivity.this, DataFormDetailActivity.class)
+                        startActivity(new Intent(CommonDocDetailsActivity.this, device ? DeviceDataFormAddActivity.class : DataFormDetailActivity.class)
                                 .putExtra("caller", mCaller)
                                 .putExtra("id", mkeyValue)
                                 .putExtra("submittype", "dosubmit"));
-
+                        setResult(0x21);
+                        finish();
 
                     } else {  //已提交状态可进行反提交
                         reSubmit();
@@ -969,7 +978,6 @@ public class CommonDocDetailsActivity extends BaseActivity {
         delete_ll.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
                 if (!TextUtils.isEmpty(real_status) && real_status.equals("在录入")) {
                     new AlertDialog
                             .Builder(mContext)
@@ -979,7 +987,11 @@ public class CommonDocDetailsActivity extends BaseActivity {
                             .setPositiveButton(getString(R.string.common_sure), new DialogInterface.OnClickListener() {
                                 @Override
                                 public void onClick(DialogInterface dialog, int which) {
-                                    DeleteComDocRequest(mCaller, mkeyValue);
+                                    if (device && "DeviceChange!Inspect".equals(mCaller)) {
+                                        ToastUtil.showToast(ct, "送检单不允许删除");
+                                    } else {
+                                        DeleteComDocRequest(mCaller, mkeyValue);
+                                    }
                                 }
                             }).show();
                 } else if (!TextUtils.isEmpty(real_status) && real_status.equals("已提交")) {
@@ -991,23 +1003,26 @@ public class CommonDocDetailsActivity extends BaseActivity {
                             .setPositiveButton(getString(R.string.common_sure), new DialogInterface.OnClickListener() {
                                 @Override
                                 public void onClick(DialogInterface dialog, int which) {  //反提交
-                                    progressDialog.show();
-
-                                    Map<String, Object> params = new HashMap<>();
-                                    params.put("caller", mCaller);
-                                    params.put("id", mkeyValue);
-                                    LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-                                    headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-                                    String url = "";
-                                    if ("ExtraWork$".equals(mCaller)) { // 新的加班单反提交
-                                        url = CommonUtil.getAppBaseUrl(ct) + "/hr/attendance/resSubmitExtraWork.action";
-                                        ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, New_DOC_REDELETE_SUCCESSFUL, null, null, "post");
-                                    } else if ("FeePlease!FYBX".equals(mCaller)) {
-                                        url = CommonUtil.getAppBaseUrl(ct) + "oa/fee/resSubmitFeePlease.action";
-                                        ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x02, null, null, "post");
-                                    } else { // 通用老的反提交s
-                                        url = CommonUtil.getAppBaseUrl(ct) + "/mobile/commonres.action";
-                                        ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, COM_DOC_REDELETE_SUCCESSFUL, null, null, "post");
+                                    if (device && "DeviceChange!Inspect".equals(mCaller)) {
+                                        ToastUtil.showToast(ct, "送检单不允许删除");
+                                    } else {
+                                        progressDialog.show();
+                                        Map<String, Object> params = new HashMap<>();
+                                        params.put("caller", mCaller);
+                                        params.put("id", mkeyValue);
+                                        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+                                        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+                                        String url = "";
+                                        if ("ExtraWork$".equals(mCaller)) { // 新的加班单反提交
+                                            url = CommonUtil.getAppBaseUrl(ct) + "/hr/attendance/resSubmitExtraWork.action";
+                                            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, New_DOC_REDELETE_SUCCESSFUL, null, null, "post");
+                                        } else if ("FeePlease!FYBX".equals(mCaller)) {
+                                            url = CommonUtil.getAppBaseUrl(ct) + "oa/fee/resSubmitFeePlease.action";
+                                            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x02, null, null, "post");
+                                        } else { // 通用老的反提交s
+                                            url = CommonUtil.getAppBaseUrl(ct) + "/mobile/commonres.action";
+                                            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, COM_DOC_REDELETE_SUCCESSFUL, null, null, "post");
+                                        }
                                     }
                                 }
                             }).show();
@@ -1025,28 +1040,34 @@ public class CommonDocDetailsActivity extends BaseActivity {
                 .setPositiveButton(getString(R.string.common_sure), new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
-                        Map<String, Object> params = new HashMap<>();
-                        params.put("caller", mCaller);
-                        params.put("id", mkeyValue);
-                        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-                        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-                        String url = "";
-                        if ("ExtraWork$".equals(mCaller)) { // 新的加班单反提交
-                            url = CommonUtil.getAppBaseUrl(ct) + "/hr/attendance/resSubmitExtraWork.action";
-                            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, NEW_DOC_RESUB_SUCCESSFUL, null, null, "post");
-
-                        } else if ("FeePlease!FYBX".equals(mCaller)) { // 报销单
-                            url = CommonUtil.getAppBaseUrl(ct) + "oa/fee/resSubmitFeePlease.action";
-                            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x01, null, null, "post");
-                        } else { // 通用老的反提交
-                            url = CommonUtil.getAppBaseUrl(ct) + "/mobile/commonres.action";
-                            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, COM_DOC_RESUB_SUCCESSFUL, null, null, "post");
-                        }
-
+                        reSubmitNet();
                     }
                 }).show();
     }
 
+    private void reSubmitNet() {
+        Map<String, Object> params = new HashMap<>();
+        params.put("caller", mCaller);
+        params.put("id", mkeyValue);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        String url = "";
+        if ("ExtraWork$".equals(mCaller)) { // 新的加班单反提交
+            url = CommonUtil.getAppBaseUrl(ct) + "/hr/attendance/resSubmitExtraWork.action";
+            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, NEW_DOC_RESUB_SUCCESSFUL, null, null, "post");
+        } else if ("FeePlease!FYBX".equals(mCaller)) { // 报销单
+            url = CommonUtil.getAppBaseUrl(ct) + "oa/fee/resSubmitFeePlease.action";
+            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x01, null, null, "post");
+        } else if ("DeviceChange!Inspect".equals(mCaller)) {
+            url = CommonUtil.getAppBaseUrl(ct) + "/mobile/device/deviceInspectRes.action";
+            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, COM_DOC_RESUB_SUCCESSFUL, null, null, "post");
+        } else {// 通用老的反提交
+            url = CommonUtil.getAppBaseUrl(ct) + "/mobile/commonres.action";
+            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, COM_DOC_RESUB_SUCCESSFUL, null, null, "post");
+        }
+    }
+
+
     private void getapplypeomsg(String em_number) {
         if (TextUtils.isEmpty(em_number)) {
             String whichsys = CommonUtil.getSharedPreferences(mContext, "erp_master");
@@ -1072,6 +1093,11 @@ public class CommonDocDetailsActivity extends BaseActivity {
 
                     Log.i("aptodo", "imId=" + imId + "imName" + imName + "imDepartment" + imDepartment + "imPosition" + imPosition);
                 } else {
+                    name_tv.setText(CommonUtil.getName());
+                    String imId=MyApplication.getInstance().getLoginUserId();
+                    if (!StringUtil.isEmpty(imId)) {
+                        AvatarHelper.getInstance().display(imId, photo_im, true, false);
+                    }
 //                    ToastMessage("单据申请人数据获取异常");
                 }
             } catch (Exception e) {
@@ -1150,6 +1176,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
                     .putExtra(Constants.FLAG.DEVICE_CLASS, dc_class)
                     .putExtra(Constants.FLAG.DEVICE_WHICH_PAGE, Constants.FLAG.DEVICE_FROM_COMMON)
             );
+            setResult(0x21);
             finish();
         }
     }

+ 14 - 2
app_modular/appworks/src/main/java/com/uas/appworks/activity/DeviceQueryActivity.java

@@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
+import com.common.data.ListUtils;
 import com.core.app.Constants;
 import com.core.base.activity.BaseMVPActivity;
 import com.core.dao.historical.HistoricalRecordBean;
@@ -206,6 +207,8 @@ public class DeviceQueryActivity extends BaseMVPActivity<WorkPlatPresenter> impl
                 int reallyPosition = (int) parent.getItemIdAtPosition(position);
                 if (Constants.FLAG.DEVICE_FROM_COMMON.equals(mWhichPage)) {
                     String keyValue = null, status = null;
+                    if (ListUtils.getSize(mDeviceQueryFlexAdapter.getRowChildBeans())<=reallyPosition)
+                    return;
                     List<DataInquiryFlexBean.RowBean.RowChildBean> childBeans = mDeviceQueryFlexAdapter.getRowChildBeans().get(reallyPosition);
                     for (DataInquiryFlexBean.RowBean.RowChildBean rowChildBean : childBeans) {
                         if ("dc_id".equals(rowChildBean.getField())) {
@@ -218,11 +221,11 @@ public class DeviceQueryActivity extends BaseMVPActivity<WorkPlatPresenter> impl
                             break;
                         }
                     }
-                    startActivity(new Intent(mContext, CommonDocDetailsActivity.class)
+                    startActivityForResult(new Intent(mContext, CommonDocDetailsActivity.class)
                             .putExtra("caller", mCaller)
                             .putExtra("keyValue", keyValue)
                             .putExtra("device", true)
-                            .putExtra("status", status));
+                            .putExtra("status", status),0x981);
 
                 } else {
                     if (CommonUtil.isRepeatClick()) {
@@ -455,6 +458,15 @@ public class DeviceQueryActivity extends BaseMVPActivity<WorkPlatPresenter> impl
         }
     }
 
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode==0x981){
+            mPageIndex = 1;
+            obtainDeviceList();
+        }
+    }
+
     @NonNull
     private SchemeConditionBean initCondition(String caption, String field, String type) {
         ArrayList<SchemeConditionBean.Property> properties = new ArrayList<>();

+ 1 - 0
app_third/recyclerlibrary/src/main/java/com/module/recyclerlibrary/ui/refresh/webempty/EmptyRefreshLayout.java

@@ -26,6 +26,7 @@ public class EmptyRefreshLayout extends BaseRefreshLayout {
         return baseRefreshView;
     }
 
+
     @Override
     protected BaseRefreshView getFooter(LayoutInflater mInflater) {
         return new SimpleRefreshFooter(getContext(), mInflater);