Przeglądaj źródła

Merge branch 'feature' of https://gitlab.com/Arisono/SkWeiChat-Baidu into feature_raomeng

raomeng 8 lat temu
rodzic
commit
04a79124ad
22 zmienionych plików z 597 dodań i 169 usunięć
  1. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/WebViewCommActivity.java
  2. 7 1
      app_core/common/src/main/java/com/core/net/ProgressDownloader.java
  3. 2 2
      app_core/common/src/main/java/com/core/utils/CommonUtil.java
  4. 5 5
      app_modular/appmessages/src/main/AndroidManifest.xml
  5. 17 9
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ApprovalListActivity.java
  6. 23 7
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/MessageWebActivity.java
  7. 99 12
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/MsgThirdWebActivity.java
  8. 1 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java
  9. 0 2
      app_modular/apputils/src/main/java/com/modular/apputils/activity/SelectNetAcitivty.java
  10. 208 0
      app_modular/apputils/src/main/java/com/modular/apputils/network/FileDownloader.java
  11. 1 0
      app_modular/apputils/src/main/java/com/modular/apputils/widget/EmptyRecyclerView.java
  12. 47 29
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java
  13. 14 7
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceMatchActivity.java
  14. 1 4
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ChangeMobileActivity.java
  15. 84 59
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/CommonDocDetailsActivity.java
  16. 10 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java
  17. 6 6
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java
  18. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/BusinessTravel.java
  19. 14 2
      app_modular/appworks/src/main/java/com/uas/appworks/activity/DeviceQueryActivity.java
  20. 54 19
      app_modular/appworks/src/main/res/layout/activity_device_match.xml
  21. 1 1
      app_modular/appworks/src/main/res/layout/item_bus_travel_air.xml
  22. 1 0
      app_third/recyclerlibrary/src/main/java/com/module/recyclerlibrary/ui/refresh/webempty/EmptyRefreshLayout.java

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

@@ -222,7 +222,7 @@ public class WebViewCommActivity extends BaseActivity implements View.OnClickLis
         Log.d("webUrl", url);
         webView.loadUrl(url, headers);
 //        webView.getRefreshableView().loadUrl("file:///android_asset/submit.html");
-        webView.setWebChromeClient(new WebChromeClient());
+        webView.setWebChromeClient(new ChromeClient());
         webView.setWebViewClient(new WebViewClient(){
             @Override
             public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

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

+ 2 - 2
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -106,7 +106,7 @@ public class CommonUtil {
         }
         String baseUrl = getSharedPreferences(ct, "erp_baseurl");
 //        if (BaseConfig.isDebug()){
-//            baseUrl="http://192.168.253.35:8080/ERP/";
+//            baseUrl="http://192.168.253.203:8090/ERP/";
 //        }
 //        baseUrl="http://192.168.253.203:8090/ERP/
 
@@ -541,7 +541,7 @@ public class CommonUtil {
             }
         }
         if (StringUtil.isEmpty(name)) {
-            name = MyApplication.getInstance().mLoginUser.getNickName();
+//            name = MyApplication.getInstance().mLoginUser.getNickName();
         }
         return StringUtil.isEmpty(name) ? "" : name;
     }

+ 5 - 5
app_modular/appmessages/src/main/AndroidManifest.xml

@@ -21,15 +21,15 @@
         <activity
             android:name=".activity.ProcessMsgActivity"
             android:label="@string/title_activity_process_msg">
-            <intent-filter>
-                <action android:name="com.modular.work.ProcessMsgActivity" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
+
         </activity>
         <activity
             android:name=".activity.ApprovalListActivity"
             android:label="@string/title_activity_process_msg">
-
+            <intent-filter>
+                <action android:name="com.modular.work.ProcessMsgActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
         </activity>
 
         <activity android:name=".activity.AppWebViewActivity" />

+ 17 - 9
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ApprovalListActivity.java

@@ -87,6 +87,16 @@ public class ApprovalListActivity extends BaseNetActivity implements View.OnClic
         initLoad();
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (tab == 1) {
+            mVoiceSearchView.setText("");
+            loadProcessToDo();
+        }
+
+    }
+
     private void initLoad() {
         loadProcessToDo();
     }
@@ -340,7 +350,7 @@ public class ApprovalListActivity extends BaseNetActivity implements View.OnClic
 
     private void showAdapter(List<ApprovalList> approvalLists) {
         ToastUtil.showToast(ct, getString(R.string.common_up_finish));
-        if (ListUtils.isEmpty(approvalLists) && page == 0) {
+        if (ListUtils.isEmpty(approvalLists) && page <= 1) {
             mEmptyLayout.showEmpty();
             if (tab == 1) {
                 tv_process_un_num.setVisibility(View.GONE);
@@ -352,14 +362,12 @@ public class ApprovalListActivity extends BaseNetActivity implements View.OnClic
                 tv_process_un_num.setText(numSize > 99 ? "99+" : (numSize <= 0 ? "" : String.valueOf(numSize)));
                 Collections.sort(approvalLists, mComparator);
             }
-
-            if (mApprovalListAdapter == null) {
-                mApprovalListAdapter = new ApprovalListAdapter(approvalLists);
-                mListView.setAdapter(mApprovalListAdapter);
-            } else {
-                mApprovalListAdapter.setApprovalLists(approvalLists);
-            }
-
+        }
+        if (mApprovalListAdapter == null) {
+            mApprovalListAdapter = new ApprovalListAdapter(approvalLists);
+            mListView.setAdapter(mApprovalListAdapter);
+        } else {
+            mApprovalListAdapter.setApprovalLists(approvalLists);
         }
     }
 

+ 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

+ 99 - 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,84 @@ 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)

+ 1 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java

@@ -1246,7 +1246,7 @@ public class MessagePresenter implements OnHttpResultListener {
                 if (isB2b) {
                     ct.startActivity(new Intent(ct, ProcessB2BActivity.class));
                 } else {
-                    ct.startActivity(new Intent(ct, ProcessMsgActivity.class));
+                    ct.startActivity(new Intent(ct, ApprovalListActivity.class));
                 }
                 break;
             case 5:

+ 0 - 2
app_modular/apputils/src/main/java/com/modular/apputils/activity/SelectNetAcitivty.java

@@ -72,7 +72,6 @@ public class SelectNetAcitivty extends OABaseActivity {
     private String lastKey;
     private int page = 1;
 
-
     //intent
     private String caller;//传进来的主表caller
     private String gCaller;//传进来的附表caller,当是明细表时候存在
@@ -80,7 +79,6 @@ public class SelectNetAcitivty extends OABaseActivity {
     private String corekey;
     private boolean dataForm;
 
-
     private PullToRefreshListView refreshListView;
     private EmptyLayout mEmptyLayout;
 

+ 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);
+    }
+
+}

+ 1 - 0
app_modular/apputils/src/main/java/com/modular/apputils/widget/EmptyRecyclerView.java

@@ -58,6 +58,7 @@ public class EmptyRecyclerView extends RecyclerView {
             @Override
             public void run() {
                 ((ViewGroup) getRootView()).addView(emptyView);
+                emptyView.setVisibility(GONE);
             }
         });
     }

+ 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);

+ 14 - 7
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceMatchActivity.java

@@ -40,7 +40,7 @@ import java.util.List;
 public class DeviceMatchActivity extends BaseNetActivity implements View.OnClickListener, OnSmartHttpListener {
     private final int LOAD_TO_DO = 1;
 
-    private TextView centerCodeEd;
+    private TextView centerCodeEd, centerNameEd;
     private TextView lineCodeEd;
     private TextView workShopEd;
     private TextView devModelEd;
@@ -64,6 +64,7 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
 
     private void initView() {
         centerCodeEd = findViewById(R.id.centerCodeEd);
+        centerNameEd = findViewById(R.id.centerNameEd);
         lineCodeEd = findViewById(R.id.lineCodeEd);
         workShopEd = findViewById(R.id.workShopEd);
         devModelEd = findViewById(R.id.devModelEd);
@@ -72,6 +73,7 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
         findViewById(R.id.resetTv).setOnClickListener(this);
         findViewById(R.id.confirmTv).setOnClickListener(this);
         centerCodeEd.setOnClickListener(this);
+        centerNameEd.setOnClickListener(this);
         lineCodeEd.setOnClickListener(this);
         workShopEd.setOnClickListener(this);
         devModelEd.setOnClickListener(this);
@@ -106,6 +108,7 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
 
         } else if (id == R.id.resetTv) {
             centerCodeEd.setText("");
+            centerNameEd.setText("");
             workShopEd.setText("");
             lineCodeEd.setText("");
             devModelEd.setText("");
@@ -117,7 +120,7 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
             loadData(centercode, linecode, workshop, devmodel);
         } else {
             String name = "";
-            if (id == R.id.centerCodeEd) {
+            if (id == R.id.centerCodeEd || id == R.id.centerNameEd) {
                 name = "centercode";
             } else if (id == R.id.workShopEd) {
                 name = "workshop";
@@ -126,7 +129,7 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
             } else if (id == R.id.devModelEd) {
                 name = "devmodel";
             }
-            LogUtil.i("name="+name);
+            LogUtil.i("name=" + name);
             if (!TextUtils.isEmpty(name)) {
                 startActivityForResult(new Intent(ct, SelectNetAcitivty.class)
                                 .putExtra("fieldKey", name)
@@ -152,10 +155,10 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
 
     @Override
     public void onFailure(int what, String message, Tags tag) throws Exception {
-        if (JSONUtil.validateJSONObject(message)){
-            String exceptionInfo=JSONUtil.getText(message,"exceptionInfo");
-            if (!TextUtils.isEmpty(exceptionInfo)){
-                ToastUtil.showToast(ct,exceptionInfo);
+        if (JSONUtil.validateJSONObject(message)) {
+            String exceptionInfo = JSONUtil.getText(message, "exceptionInfo");
+            if (!TextUtils.isEmpty(exceptionInfo)) {
+                ToastUtil.showToast(ct, exceptionInfo);
             }
         }
         handerData(new JSONArray());
@@ -249,6 +252,7 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
             if (JSONUtil.validateJSONObject(json)) try {
                 JSONObject object = JSON.parseObject(json);
                 String centercode = JSONUtil.getText(object, "centercode");
+                String centerName = JSONUtil.getText(object, "centername");
                 String workshop = JSONUtil.getText(object, "workshop");
                 String linecode = JSONUtil.getText(object, "linecode");
                 String devmodel = JSONUtil.getText(object, "devmodel");
@@ -256,6 +260,9 @@ public class DeviceMatchActivity extends BaseNetActivity implements View.OnClick
                 if (!TextUtils.isEmpty(centercode)) {
                     centerCodeEd.setText(centercode);
                 }
+                if (!TextUtils.isEmpty(centerName)) {
+                    centerNameEd.setText(centerName);
+                }
                 if (!TextUtils.isEmpty(workshop)) {
                     workShopEd.setText(workshop);
                 }

+ 1 - 4
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ChangeMobileActivity.java

@@ -294,10 +294,7 @@ public class ChangeMobileActivity extends BaseActivity {
         Map<String, Object> param = new HashMap<>();
         param.put("caller", caller);
         Map<String, Object> params = new HashMap<>();
-        String emname = CommonUtil.getSharedPreferences(ct, "erp_emname");
-        if (StringUtil.isEmpty(emname)) {
-            emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
-        }
+        String emname = CommonUtil.getName();
         params.put("ms_emname", emname);
         params.put("ms_remark", message);
         params.put("ms_status", "在录入");

+ 84 - 59
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,8 +655,9 @@ public class CommonDocDetailsActivity extends BaseActivity {
         }
         if (device) {
             LogUtil.i("real_status=" + real_status);
-            resanddel_ll.setVisibility(View.GONE);
+//            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);
                 sureTv.setOnClickListener(new View.OnClickListener() {
                     @Override
@@ -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,58 +955,29 @@ 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 {  //已提交状态可进行反提交
-                        new AlertDialog
-                                .Builder(mContext)
-                                .setTitle(getString(R.string.common_notice))
-                                .setMessage(getString(R.string.daily_resubmit_notice1))
-                                .setNegativeButton(getString(R.string.common_cancel), null)
-                                .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");
-                                        }
-
-                                    }
-                                }).show();
+                        reSubmit();
                     }
 
                 }
             });
-
         }
-
         // 删除
         delete_ll.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
                 if (!TextUtils.isEmpty(real_status) && real_status.equals("在录入")) {
                     new AlertDialog
                             .Builder(mContext)
@@ -1020,23 +999,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();
@@ -1045,6 +1027,43 @@ public class CommonDocDetailsActivity extends BaseActivity {
         });
     }
 
+    private void reSubmit() {
+        new AlertDialog
+                .Builder(mContext)
+                .setTitle(getString(R.string.common_notice))
+                .setMessage(getString(R.string.daily_resubmit_notice1))
+                .setNegativeButton(getString(R.string.common_cancel), null)
+                .setPositiveButton(getString(R.string.common_sure), new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        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");
@@ -1070,6 +1089,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) {
@@ -1148,6 +1172,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();
         }
     }

+ 10 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java

@@ -11,12 +11,15 @@ import com.common.LogUtil;
 import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
+import com.core.net.utils.NetUtils;
 import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
 import com.me.network.app.http.Method;
 import com.modular.apputils.activity.BaseNetActivity;
 import com.modular.apputils.listener.OnSmartHttpListener;
 import com.modular.apputils.network.Parameter;
 import com.modular.apputils.network.Tags;
+import com.modular.apputils.widget.EmptyRecyclerView;
 import com.modular.apputils.widget.SpaceItemDecoration;
 import com.module.recyclerlibrary.ui.refresh.BaseRefreshLayout;
 import com.uas.appworks.OA.platform.adapter.BusinessTravelAdapter;
@@ -28,7 +31,7 @@ import java.util.List;
 
 public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHttpListener {
     private BaseRefreshLayout mRefreshLayout;
-    private RecyclerView mRecyclerView;
+    private EmptyRecyclerView mRecyclerView;
     private BusinessTravelAdapter mAdapter;
 
     @Override
@@ -68,6 +71,12 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
 
 
     public void loadData() {
+        if (!NetUtils.isNetWorkConnected(ct))
+        {
+            ToastUtil.showToast(ct,R.string.networks_out);
+            return;
+        }
+
         if (!mRefreshLayout.isRefreshing()) {
             showProgress();
         }

+ 6 - 6
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java

@@ -167,7 +167,7 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
     }
 
     private void bindHotelView(HotelViewHolder holder, BusinessTravel model) {
-        String whenLongTv = "入住: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "      离店: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "     共" + model.getAllTime();
+        String whenLongTv = "入住: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "      离店: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "     共" + model.getAllTime()+"晚";
         holder.whenLongTv.setText(whenLongTv);
         holder.businessNameTv.setText(model.getBusinessName());
         holder.numberTv.setText(model.getNumber() + "人");
@@ -390,11 +390,11 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
             String appkey = "y8gd87dsdkencgzk394k7s5c78io35c";
             String appSceret = "e212e142a5c9e0590eefb7d9f1bc91d7";
             String baseUrl="http://124.254.45.234:8082/oa/caslogin/";
-            if (!BaseConfig.isDebug()){
-                appkey = "fjdsfnvg6523fsgjkff879fidsf";
-                appSceret = "9891ca5330271eba81ec1332e740c210";
-                baseUrl="http://h5.auvgo.com/";
-            }
+//            if (!BaseConfig.isDebug()){
+//                appkey = "fjdsfnvg6523fsgjkff879fidsf";
+//                appSceret = "9891ca5330271eba81ec1332e740c210";
+//                baseUrl="http://h5.auvgo.com/";
+//            }
             String username = CommonUtil.getEmcode();
             String data = appkey + username.toUpperCase() + appSceret;
             String key = Md5Util.toMD5(appSceret).toUpperCase();

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/BusinessTravel.java

@@ -151,7 +151,7 @@ public class BusinessTravel {
     }
 
     public String getDate() {
-        return type == AIR ? (DateFormatUtil.long2Str(endTime, "yyyy-MM-dd")) : (DateFormatUtil.long2Str(startTime, "yyyy-MM-dd") + "-" + DateFormatUtil.long2Str(endTime, "yyyy-MM-dd"));
+        return type == AIR ? (DateFormatUtil.long2Str(endTime, "yyyy-MM-dd")) : (DateFormatUtil.long2Str(startTime, "yyyy-MM-dd") + "  " + DateFormatUtil.long2Str(endTime, "yyyy-MM-dd"));
     }
 
     public String getTitleAndCode() {

+ 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<>();

+ 54 - 19
app_modular/appworks/src/main/res/layout/activity_device_match.xml

@@ -7,11 +7,12 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="@dimen/padding"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:padding="@dimen/paddingMin">
+
         <TextView
             android:layout_width="80dp"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:layout_gravity="left"
             android:layout_marginRight="10dp"
             android:ellipsize="end"
@@ -24,7 +25,7 @@
         <TextView
             android:id="@+id/centerCodeEd"
             android:layout_width="match_parent"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:background="@drawable/shape_corner_white_bg"
             android:gravity="center_vertical"
             android:paddingLeft="10dp"
@@ -34,37 +35,40 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="@dimen/padding"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:padding="@dimen/paddingMin">
+
         <TextView
             android:layout_width="80dp"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:layout_gravity="left"
             android:layout_marginRight="10dp"
             android:ellipsize="end"
             android:gravity="center_vertical"
             android:maxLines="2"
             android:paddingLeft="6dp"
-            android:text="线别"
+            android:text="部门名称"
             android:textSize="14sp" />
 
         <TextView
-            android:id="@+id/lineCodeEd"
+            android:id="@+id/centerNameEd"
             android:layout_width="match_parent"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:background="@drawable/shape_corner_white_bg"
             android:gravity="center_vertical"
             android:paddingLeft="10dp"
             android:textSize="14sp" />
     </LinearLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="@dimen/padding"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:padding="@dimen/paddingMin">
+
         <TextView
             android:layout_width="80dp"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:layout_gravity="left"
             android:layout_marginRight="10dp"
             android:ellipsize="end"
@@ -77,20 +81,50 @@
         <TextView
             android:id="@+id/workShopEd"
             android:layout_width="match_parent"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
+            android:background="@drawable/shape_corner_white_bg"
+            android:gravity="center_vertical"
+            android:paddingLeft="10dp"
+            android:textSize="14sp" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="@dimen/paddingMin">
+
+        <TextView
+            android:layout_width="80dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
+            android:layout_gravity="left"
+            android:layout_marginRight="10dp"
+            android:ellipsize="end"
+            android:gravity="center_vertical"
+            android:maxLines="2"
+            android:paddingLeft="6dp"
+            android:text="线别"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/lineCodeEd"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:background="@drawable/shape_corner_white_bg"
             android:gravity="center_vertical"
             android:paddingLeft="10dp"
             android:textSize="14sp" />
     </LinearLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:padding="@dimen/padding"
-        android:orientation="horizontal">
+        android:orientation="horizontal"
+        android:padding="@dimen/paddingMin">
+
         <TextView
             android:layout_width="80dp"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:layout_gravity="left"
             android:layout_marginRight="10dp"
             android:ellipsize="end"
@@ -103,12 +137,13 @@
         <TextView
             android:id="@+id/devModelEd"
             android:layout_width="match_parent"
-            android:layout_height="36dp"
+            android:layout_height="@dimen/oa_statistics_date_minheight"
             android:background="@drawable/shape_corner_white_bg"
             android:gravity="center_vertical"
             android:paddingLeft="10dp"
             android:textSize="14sp" />
     </LinearLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -158,5 +193,5 @@
     <android.support.v7.widget.RecyclerView
         android:id="@+id/mRecyclerView"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"/>
+        android:layout_height="match_parent" />
 </LinearLayout>

+ 1 - 1
app_modular/appworks/src/main/res/layout/item_bus_travel_air.xml

@@ -300,7 +300,7 @@
             android:layout_below="@id/addressTag"
             android:layout_marginRight="@dimen/padding"
             android:layout_marginTop="@dimen/padding"
-            android:text="返时间:"
+            android:text="返时间:"
             android:textColor="@color/text_hine" />
 
         <TextView

+ 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);