Browse Source

提交类型 编写设备管理代码,紧急处理设备管理bug
1.完善设备管理代码逻辑,添加个别字段判断

冲突 无

Bitliker 8 years ago
parent
commit
a6d1f928dc
17 changed files with 381 additions and 117 deletions
  1. 5 5
      WeiChat/version.properties
  2. 4 4
      app_core/common/src/main/java/com/core/net/http/ViewUtil.java
  3. 6 6
      app_core/common/src/main/java/com/core/utils/CommonUtil.java
  4. 97 0
      app_modular/apputils/src/main/java/com/modular/apputils/widget/EmptyRecyclerView.java
  5. 29 0
      app_modular/apputils/src/main/res/layout/common_empty_view.xml
  6. 1 1
      app_modular/apputils/src/main/res/layout/common_refresh_recycler.xml
  7. 2 2
      app_modular/appworks/src/main/AndroidManifest.xml
  8. 25 13
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountActivity.java
  9. 20 15
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountAddActivity.java
  10. 16 1
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountDetailsActivity.java
  11. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountInfoActivity.java
  12. 4 0
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java
  13. 44 15
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceManageActivity.java
  14. 61 27
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/ScanDetailActivity.java
  15. 59 26
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/CommonDocDetailsActivity.java
  16. 6 1
      app_modular/appworks/src/main/java/com/uas/appworks/activity/DeviceQueryActivity.java
  17. 1 0
      app_modular/appworks/src/main/res/values/strings.xml

+ 5 - 5
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Thu Dec 21 17:03:56 CST 2017
-debugName=221
-versionName=612
-debugCode=221
-versionCode=151
+#Sat Dec 23 16:52:47 CST 2017
+debugName=235
+versionName=615
+debugCode=235
+versionCode=154

+ 4 - 4
app_core/common/src/main/java/com/core/net/http/ViewUtil.java

@@ -1047,10 +1047,10 @@ public class ViewUtil {
                                     String password) {
         mdProcessDialog.setContent(MyApplication.getInstance().getString(R.string.login_progress_erp));
         url = url + "mobile/login.action";
-//        if (BaseConfig.isDebug()){
-//            master=CommonUtil.getMaster();
-//            url="http://192.168.253.203:8090/ERP/mobile/login.action";
-//        }
+        if (BaseConfig.isDebug()){
+            master=CommonUtil.getMaster();
+            url="http://192.168.253.203:8090/ERP/mobile/login.action";
+        }
  //       url="http://192.168.253.58:8080/ERP/mobile/login.action";
 //        url = "http://192.168.253.29:8080/ERP/mobile/login.action";
 //        url = "http://192.168.253.6/uas_dev/mobile/login.action";

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

@@ -99,9 +99,9 @@ public class CommonUtil {
             return "";
         }
         String baseUrl = getSharedPreferences(ct, "erp_baseurl");
-//        if (BaseConfig.isDebug()){
-//            baseUrl="http://192.168.253.203:8090/ERP/";
-//        }
+        if (BaseConfig.isDebug()){
+            baseUrl="http://192.168.253.203:8090/ERP/";
+        }
 //        baseUrl="http://192.168.253.203:8090/ERP/";
         return baseUrl;
     }
@@ -474,9 +474,9 @@ public class CommonUtil {
         boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
         String master = isB2b ? CommonUtil.getSharedPreferences(MyApplication.getInstance().getApplicationContext(), "companyEnUu")
                 : CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
-//      if (BaseConfig.isDebug()){
-//          master="UAS_DEV";
-//      }
+      if (BaseConfig.isDebug()){
+          master="UAS_DEV";
+      }
         return master;
 
     }

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

@@ -0,0 +1,97 @@
+package com.modular.apputils.widget;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.modular.apputils.R;
+
+
+public class EmptyRecyclerView extends RecyclerView {
+
+    private View emptyView;
+    private static final String TAG = "EmptyRecyclerView";
+
+    final private AdapterDataObserver observer = new AdapterDataObserver() {
+        @Override
+        public void onChanged() {
+            checkIfEmpty();
+        }
+
+        @Override
+        public void onItemRangeInserted(int positionStart, int itemCount) {
+            Log.i(TAG, "onItemRangeInserted" + itemCount);
+            checkIfEmpty();
+        }
+
+        @Override
+        public void onItemRangeRemoved(int positionStart, int itemCount) {
+            checkIfEmpty();
+        }
+    };
+    private LayoutInflater mInflater;
+
+    public EmptyRecyclerView(Context context) {
+        super(context);
+        initEmptyView(context);
+    }
+
+    public EmptyRecyclerView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        initEmptyView(context);
+    }
+
+    public EmptyRecyclerView(Context context, AttributeSet attrs,
+                             int defStyle) {
+        super(context, attrs, defStyle);
+        initEmptyView(context);
+    }
+
+    private void initEmptyView(Context context) {
+        mInflater = LayoutInflater.from(context);
+        emptyView = mInflater.inflate(R.layout.common_empty_view, null);
+        post(new Runnable() {
+            @Override
+            public void run() {
+                ((ViewGroup) getRootView()).addView(emptyView);
+            }
+        });
+
+    }
+
+
+
+    private void checkIfEmpty() {
+        if (emptyView != null && getAdapter() != null) {
+            final boolean emptyViewVisible =
+                    getAdapter().getItemCount() == 0;
+            emptyView.setVisibility(emptyViewVisible ? VISIBLE : GONE);
+            setVisibility(emptyViewVisible ? GONE : VISIBLE);
+        }
+    }
+
+    @Override
+    public void setAdapter(Adapter adapter) {
+        final Adapter oldAdapter = getAdapter();
+        if (oldAdapter != null) {
+            oldAdapter.unregisterAdapterDataObserver(observer);
+        }
+        super.setAdapter(adapter);
+        if (adapter != null) {
+            adapter.registerAdapterDataObserver(observer);
+        }
+
+        checkIfEmpty();
+    }
+
+
+    //设置没有内容时,提示用户的空布局
+    public void setEmptyView(View emptyView) {
+        this.emptyView = emptyView;
+        checkIfEmpty();
+    }
+}

+ 29 - 0
app_modular/apputils/src/main/res/layout/common_empty_view.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:orientation="vertical">
+
+        <android.support.v7.widget.AppCompatImageView
+            android:id="@+id/emptyImg"
+            android:layout_width="80dp"
+            android:layout_height="60dp"
+            android:src="@drawable/ic_empty" />
+
+        <android.support.v7.widget.AppCompatTextView
+            android:id="@+id/emptyTv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal"
+            android:text="暂无记录"
+            android:textColor="@color/text_hine"
+            android:textSize="@dimen/text_main" />
+    </LinearLayout>
+
+</RelativeLayout>

+ 1 - 1
app_modular/apputils/src/main/res/layout/common_refresh_recycler.xml

@@ -6,7 +6,7 @@
     android:layout_height="match_parent"
     app:fectiveScroll="30dp">
 
-    <android.support.v7.widget.RecyclerView
+    <com.modular.apputils.widget.EmptyRecyclerView
         android:id="@+id/mRecyclerView"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />

+ 2 - 2
app_modular/appworks/src/main/AndroidManifest.xml

@@ -336,13 +336,13 @@
             android:name=".CRM.erp.activity.DeviceCycleCountActivity"
             android:label="@string/title_device_manage" />        <activity
             android:name=".CRM.erp.activity.DeviceCycleCountInfoActivity"
-            android:label="@string/title_device_manage" />  <activity
+            android:label="@string/text_cycle_count" />  <activity
             android:name=".CRM.erp.activity.DeviceDataFormAddActivity"
             android:label="@string/title_device_manage" />  <activity
             android:name=".CRM.erp.activity.DeviceCycleCountDetailsActivity"
             android:label="@string/title_device_manage" /> <activity
             android:name=".CRM.erp.activity.DeviceCycleCountAddActivity"
-            android:label="@string/title_device_manage" />
+            android:label="@string/text_cycle_count_add" />
         <activity android:name=".OA.platform.activity.BusinessTravelActivity"></activity>
 
         <activity android:name=".activity.DeviceQueryActivity"

+ 25 - 13
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountActivity.java

@@ -36,6 +36,7 @@ import com.core.net.http.ViewUtil;
 import com.core.utils.CommonUtil;
 import com.core.utils.ToastUtil;
 import com.core.widget.ClearEditText;
+import com.core.widget.EmptyLayout;
 import com.core.widget.VoiceSearchView;
 import com.core.widget.listener.EditChangeListener;
 import com.core.widget.view.Activity.SelectActivity;
@@ -75,6 +76,7 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
     private PullToRefreshListView mRefreshListView;
     private MenuVoiceSearchView mVoiceSearchView;
     private int pageIndex;
+    private EmptyLayout mEmptyLayout;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -88,6 +90,11 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
         initActionbar();
         mRefreshListView = (PullToRefreshListView) findViewById(R.id.mRefreshListView);
         mRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
+        mEmptyLayout = new EmptyLayout(this, mRefreshListView.getRefreshableView());
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("没有符合条件的数据");
         mRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
@@ -201,6 +208,9 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
         }
         if (pageIndex == 1) {
             allCycleCount = moreListData;
+            if (ListUtils.isEmpty(moreListData)) {
+                mEmptyLayout.showEmpty();
+            }
         } else {
             allCycleCount.addAll(moreListData);
         }
@@ -219,21 +229,23 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
             if (caption.equals("ID")) {
                 cycleCount.setId(values);
             }
-            if (width < 100 && columns.size() > (i + 1) && JSONUtil.getInt(columns.getJSONObject(i + 1), "width") < 100) {
-                //有两个
-                JSONObject item2 = columns.getJSONObject(i + 1);
-                String field2 = JSONUtil.getText(item2, "dataIndex", "field");
-                String caption2 = JSONUtil.getText(item2, "caption");
-                String values2 = JSONUtil.getText(data, field2);
-                o.setCaption2(caption2);
-                o.setValues2(values2);
-                o.setHasTwo(true);
-                if (caption.equals("ID")) {
-                    cycleCount.setId(values);
+            if (width > 0) {
+                if (width < 100 && columns.size() > (i + 1) && JSONUtil.getInt(columns.getJSONObject(i + 1), "width") < 100) {
+                    //有两个
+                    JSONObject item2 = columns.getJSONObject(i + 1);
+                    String field2 = JSONUtil.getText(item2, "dataIndex", "field");
+                    String caption2 = JSONUtil.getText(item2, "caption");
+                    String values2 = JSONUtil.getText(data, field2);
+                    o.setCaption2(caption2);
+                    o.setValues2(values2);
+                    o.setHasTwo(true);
+                    if (caption.equals("ID")) {
+                        cycleCount.setId(values);
+                    }
+                    i++;
                 }
-                i++;
+                cycleCount.addData(o);
             }
-            cycleCount.addData(o);
         }
         return cycleCount;
     }

+ 20 - 15
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountAddActivity.java

@@ -120,6 +120,7 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
 
 
     private void loadPopData() {
+        progressDialog.show();
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/common/getFormPanel.action")
                 .add("caller", "DeviceBatch!Stock")
@@ -134,11 +135,15 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
                         LogUtil.i("e=" + e.getMessage());
                     }
                 }
+                if (progressDialog != null) {
+                    progressDialog.dismiss();
+                }
             }
         }));
     }
 
     private boolean isSubmitl;
+
     private void addCycle(List<CycleCountAdd> models) {
         Map<String, Object> formStore = new HashMap<>();
         for (CycleCountAdd e : models) {
@@ -149,8 +154,8 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
                 return;
             }
         }
-        if (isSubmitl)return;
-        isSubmitl=true;
+        if (isSubmitl) return;
+        isSubmitl = true;
         progressDialog.show();
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/device/saveAndSubmitDeviceStock.action")
@@ -161,7 +166,7 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
             @Override
             public void onResponse(Object o) {
                 try {
-                    if (progressDialog!=null){
+                    if (progressDialog != null) {
                         progressDialog.dismiss();
                     }
                     boolean success = JSONUtil.getBoolean(o.toString(), "success");
@@ -170,7 +175,7 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
                         ToastUtil.showToast(ct, "添加成功");
                         finish();
                     }
-                    isSubmitl=false;
+                    isSubmitl = false;
 
                 } catch (Exception e) {
                     if (e != null) {
@@ -352,17 +357,17 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         LogUtil.i("selectPosition=" + selectPosition);
-        if (0x21 == requestCode && data != null) {
-            SelectBean b = data.getParcelableExtra("data");
-            LogUtil.d(JSON.toJSONString(b));
-            if (b == null || popAdapter == null) return;
-            popAdapter.updateValues(selectPosition, b.getName());
-        } else if (90 == requestCode) {
-            String json = data.getStringExtra("data");
-            LogUtil.i("json=" + json);
-            if (popAdapter == null) return;
-            popAdapter.updateValues(json);
-
+        if (data != null) {
+            if (0x21 == requestCode && popAdapter != null) {
+                SelectBean b = data.getParcelableExtra("data");
+                LogUtil.d(JSON.toJSONString(b));
+                if (b == null ) return;
+                popAdapter.updateValues(selectPosition, b.getName());
+            } else if (90 == requestCode) {
+                String json = data.getStringExtra("data");
+                LogUtil.i("json=" + json);
+                popAdapter.updateValues(json);
+            }
         }
     }
 }

+ 16 - 1
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountDetailsActivity.java

@@ -11,9 +11,11 @@ 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.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
+import com.core.widget.EmptyLayout;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
@@ -34,6 +36,8 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
     private HttpClient httpClient = null;
     private ListView mListView;
     private boolean isAct;
+    private EmptyLayout mEmptyLayout;
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -74,10 +78,15 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
 
     private void initView() {
         mListView = findViewById(R.id.mListView);
+        mEmptyLayout = new EmptyLayout(this, mListView);
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
     }
 
     private void loadData() {
-        String condition =(isAct ? "nvl(dc_actionresult,' ')=' '" : "nvl(dc_actionresult,' ')<>' '")+"  and dc_dbid='"+id+"'" ;
+        progressDialog.show();
+        String condition = (isAct ? "nvl(dc_actionresult,' ')<>' '" : "nvl(dc_actionresult,' ')=' '") + "  and dc_dbid='" + id + "'";
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/common/getGridPanel.action")
                 .add("caller", "DeviceBatch!Stock")
@@ -93,6 +102,9 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
                         LogUtil.i("e=" + e.getMessage());
                     }
                 }
+                if (progressDialog != null) {
+                    progressDialog.dismiss();
+                }
             }
         }));
     }
@@ -158,5 +170,8 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
         } else {
             mAdapter.setModels(models);
         }
+        if (ListUtils.isEmpty(models)){
+            mEmptyLayout.showEmpty();
+        }
     }
 }

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountInfoActivity.java

@@ -273,7 +273,7 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
             }, new Runnable() {
                 @Override
                 public void run() {
-                    ToastUtil.showToast(ct, R.string.not_system_permission);
+                    ToastUtil.showToast(ct, R.string.not_camera_permission);
                 }
             });
             if (mPopupWindow != null && mPopupWindow.isShowing()) {

+ 4 - 0
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java

@@ -573,6 +573,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                     startActivity(new Intent(mContext, CommonDocDetailsActivity.class)
                             .putExtra("caller", caller)
                             .putExtra("keyValue", va_id)
+                            .putExtra("device", true)
                             .putExtra("status", "已提交"));
                 } else {
                     startActivity(new Intent(mContext, CommonDocDetailsActivity.class)
@@ -1061,6 +1062,9 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                 intent.putExtra("id", categoryIndex);
                                 intent.putExtra("object", data);
                                 startActivityForResult(intent, categoryIndex);
+
+
+
                                 isLeave = true;
                             }
                             //连带操作

+ 44 - 15
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceManageActivity.java

@@ -8,12 +8,14 @@ import android.support.v7.widget.GridLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.util.Log;
 
+import com.afollestad.materialdialogs.MaterialDialog;
 import com.common.data.StringUtil;
+import com.core.app.Constants;
+import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.utils.ToastUtil;
 import com.uas.appworks.CRM.erp.adapter.DeviceManageAdapter;
 import com.uas.appworks.CRM.erp.model.DeviceManage;
-import com.uas.appworks.OA.erp.activity.form.DataFormDetailActivity;
 import com.uas.appworks.R;
 import com.uas.appworks.activity.DeviceQueryActivity;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
@@ -40,7 +42,7 @@ public class DeviceManageActivity extends BaseActivity {
         //扫一扫
         models.add(new DeviceManage(1, R.drawable.icon_scan_device, StringUtil.getMessage(R.string.text_scan_device)).setCazz(CaptureActivity.class).setRequest(0x21));
         //设备查询
-        models.add(new DeviceManage(2, R.drawable.icon_device_query, StringUtil.getMessage(R.string.text_device_query)).setCazz(DeviceQueryActivity.class));
+        models.add(new DeviceManage(2, R.drawable.icon_device_query, StringUtil.getMessage(R.string.text_device_query)).setCazz(DeviceQueryActivity.class).addString(Constants.FLAG.DEVICE_CALLER, "Device"));
         //通用配置表单
 
         models.add(new DeviceManage(3, R.drawable.icon_application_use, StringUtil.getMessage(R.string.text_application_use)).setCazz(DeviceDataFormAddActivity.class).addString("caller", "DeviceChange!Use"));
@@ -67,11 +69,14 @@ public class DeviceManageActivity extends BaseActivity {
         if (manage != null) {
             Class cazz = manage.getCazz();
             final Intent intent = new Intent(ct, cazz);
-
+            intent.putExtra("title", manage.getName());
             Bundle bundle = manage.getBundle();
             if (bundle != null) {
                 intent.putExtra("data", bundle);
-                intent.putExtra("caller", bundle.getString("caller"));
+                if (bundle.keySet() != null) {
+                    for (String e : bundle.keySet())
+                        intent.putExtra(e, bundle.getString(e));
+                }
             }
             if (manage.getRequest() > 0) {
                 requestPermission(Manifest.permission.CAMERA, new Runnable() {
@@ -82,7 +87,7 @@ public class DeviceManageActivity extends BaseActivity {
                 }, new Runnable() {
                     @Override
                     public void run() {
-                        ToastUtil.showToast(ct, R.string.not_system_permission);
+                        ToastUtil.showToast(ct, R.string.not_camera_permission);
                     }
                 });
             } else {
@@ -94,18 +99,42 @@ public class DeviceManageActivity extends BaseActivity {
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        if (requestCode == 0x21 && resultCode == Activity.RESULT_OK && data != null) {
-            Bundle bundle = data.getExtras();
-            if (bundle != null) {
-                if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
-                    String result = bundle.getString(CodeUtils.RESULT_STRING);
-                    Log.d("scanurl", result);
-                    ToastUtil.showToast(ct, result);
-                    //TODO 测试数据
-//                    result = "ASDF01098";
-                    startActivity(new Intent(ct, ScanDetailActivity.class).putExtra("decode", result));
+        if (data != null) {
+            if (requestCode == 0x21 && resultCode == Activity.RESULT_OK) {
+                Bundle bundle = data.getExtras();
+                if (bundle != null) {
+                    if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
+                        String result = bundle.getString(CodeUtils.RESULT_STRING);
+                        Log.d("scanurl", result);
+                        ToastUtil.showToast(ct, result);
+                        startActivityForResult(new Intent(ct, ScanDetailActivity.class).putExtra("decode", result), 0x22);
+                    }
                 }
+            } else if (requestCode == 0x22) {
+                showDialog(data.getStringExtra("data"));
+
             }
         }
     }
+
+    private void showDialog(String message) {
+        if (StringUtil.isEmpty(message)) return;
+        new MaterialDialog.Builder(ct)
+                .title(R.string.app_dialog_title)
+                .content(message)
+                .positiveText(MyApplication.getInstance().getString(R.string.app_dialog_ok))
+                .autoDismiss(false)
+                .callback(new MaterialDialog.ButtonCallback() {
+                    @Override
+                    public void onPositive(MaterialDialog dialog) {
+                        dialog.dismiss();
+
+                    }
+
+                    @Override
+                    public void onNegative(MaterialDialog dialog) {
+                        dialog.dismiss();
+                    }
+                }).show();
+    }
 }

+ 61 - 27
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/ScanDetailActivity.java

@@ -18,7 +18,6 @@ import android.widget.TextView;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.baidu.cyberplayer.utils.G;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
@@ -26,6 +25,7 @@ import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
+import com.core.net.utils.NetUtils;
 import com.core.utils.CommonUtil;
 import com.core.utils.ToastUtil;
 import com.me.network.app.http.HttpClient;
@@ -35,7 +35,6 @@ import com.me.network.app.http.rx.ResultSubscriber;
 import com.modular.apputils.widget.RecycleViewDivider;
 import com.module.recyclerlibrary.ui.refresh.BaseRefreshLayout;
 import com.uas.appworks.CRM.erp.model.DeviceInfo;
-import com.uas.appworks.CRM.erp.model.TestStr;
 import com.uas.appworks.R;
 
 import java.util.ArrayList;
@@ -128,15 +127,10 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
             public void onCheckedChanged(RadioGroup group, int checkedId) {
                 if (checkedId == R.id.baseInfoRb) {
                     setData2Adapter(1);
-                    ToastMessage("选择基础信息");
                 } else if (checkedId == R.id.moreInfoRb) {
                     setData2Adapter(2);
-                    ToastMessage("选择详细信息");
-
                 } else if (checkedId == R.id.historyRb) {
                     setData2Adapter(3);
-                    ToastMessage("选择设备履历");
-
                 }
             }
         });
@@ -183,16 +177,16 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
         } else if (R.id.doneTv == id) {
             showMuenPop(v);
         } else if (R.id.popUseApplyBtn == id) {
-            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("caller", "DeviceChange!Use").putExtra("noCode", decode));
+            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("title", StringUtil.getMessage(R.string.text_application_use)).putExtra("caller", "DeviceChange!Use").putExtra("noCode", decode));
             dismissMenuPop();
         } else if (R.id.popScrapApplyBtn == id) {
-            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("caller", "DeviceChange!Scrap").putExtra("noCode", decode));
+            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("title", StringUtil.getMessage(R.string.text_scrap_application)).putExtra("caller", "DeviceChange!Scrap").putExtra("noCode", decode));
             dismissMenuPop();
         } else if (R.id.popMaintenanceBtn == id) {
-            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("caller", "DeviceChange!Maintain").putExtra("noCode", decode));
+            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("title", StringUtil.getMessage(R.string.text_maintenance)).putExtra("caller", "DeviceChange!Maintain").putExtra("noCode", decode));
             dismissMenuPop();
         } else if (R.id.popInspectBtn == id) {
-            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("caller", "DeviceChange!Inspect").putExtra("noCode", decode));
+            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).putExtra("title", StringUtil.getMessage(R.string.text_fault_inspection)).putExtra("caller", "DeviceChange!Inspect").putExtra("noCode", decode));
             dismissMenuPop();
         }
 
@@ -206,24 +200,45 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
 
 
     private void loadData() {
-        httpClient.Api().send(new HttpClient.Builder()
-                .url("mobile/device/getDeviceInfo.action")
-                .add("decode", decode)
-                .method(Method.GET)
-                .build(), new ResultSubscriber<>(new ResultListener<Object>() {
-            @Override
-            public void onResponse(Object o) {
-                try {
-                    handleData(o.toString());
-                } catch (Exception e) {
-                    if (e != null) {
-                        LogUtil.i("e=" + e.getMessage());
+
+        if (NetUtils.isNetWorkConnected(ct)) {
+            if (!mRefreshLayout.isRefreshing()) {
+                progressDialog.show();
+            }
+            httpClient.Api().send(new HttpClient.Builder()
+                    .url("mobile/device/getDeviceInfo.action")
+                    .add("decode", decode)
+                    .method(Method.GET)
+                    .build(), new ResultSubscriber<>(new ResultListener<Object>() {
+                @Override
+                public void onResponse(Object o) {
+                    try {
+                        handleData(o.toString());
+                    } catch (Exception e) {
+                        if (e != null) {
+                            LogUtil.i("e=" + e.getMessage());
+                        }
+                    }
+                    if (progressDialog != null) {
+                        progressDialog.dismiss();
+
+                    }
+                    if (mRefreshLayout != null) {
+                        mRefreshLayout.stopRefresh();
                     }
+
                 }
-                mRefreshLayout.stopRefresh();
-                progressDialog.dismiss();
+            }));
+        } else {
+            if (!mRefreshLayout.isRefreshing()) {
+                endOfError(getString(R.string.networks_out));
             }
-        }));
+        }
+    }
+
+    private void endOfError(String exceptionInfo) {
+        setResult(0x22, new Intent().putExtra("data", exceptionInfo));
+        finish();
     }
 
     private void handleData(String message) throws Exception {
@@ -255,6 +270,7 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
             if (!StringUtil.isEmpty(exceptionInfo)) {
                 ToastUtil.showToast(ct, exceptionInfo);
             }
+            endOfError(exceptionInfo);
         }
 
     }
@@ -296,7 +312,8 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
             JSONObject item = items.getJSONObject(i);
             String field = JSONUtil.getText(item, "field", "dataIndex");
             String caption = JSONUtil.getText(item, "caption");
-            String values = JSONUtil.getText(data, field);
+            String type = JSONUtil.getText(item, "type");
+            String values =getValues(type,JSONUtil.getText(data, field,field.toUpperCase())) ;
             if (isFrom && caption.equals("ID")) {
                 id = values;
             }
@@ -305,6 +322,23 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
         return deviceInfos;
     }
 
+    private String getValues(String type, String values) {
+        if (type.equals("combo")) {
+            switch (values) {
+                case "UNUSED":
+                    return "闲置中";
+                case "USING":
+                    return "正常使用";
+                case "BREAKING":
+                    return "故障中";
+                case "SCRAPPED":
+                    return "已报废";
+                case "LOSSED":
+                    return "已盘亏";
+            }
+        }
+        return values;
+    }
 
     private class DeviceInfoAdapter extends RecyclerView.Adapter<DeviceInfoAdapter.ViewHolder> {
 

+ 59 - 26
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/CommonDocDetailsActivity.java

@@ -55,6 +55,7 @@ import com.uas.appworks.OA.erp.model.CommonApprovalFlowBean;
 import com.uas.appworks.OA.erp.model.CommonDocAMBean;
 import com.uas.appworks.OA.erp.utils.approvautils.ApprovaNodeUtil;
 import com.uas.appworks.OA.erp.utils.approvautils.NodeAdapter;
+import com.uas.appworks.activity.DeviceQueryActivity;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -133,8 +134,13 @@ public class CommonDocDetailsActivity extends BaseActivity {
         commondoc_sv.smoothScrollTo(0, 0);
         super.onResume();
     }
-
+    private boolean device;
     public void initView() {
+        Intent intent = getIntent();
+        if (intent!=null){
+            device=intent.getBooleanExtra("device",false);
+        }
+
         platform = ApiUtils.getApiModel() instanceof ApiPlatform;
         setContentView(R.layout.activity_common_docui);
         initIDS();
@@ -269,7 +275,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
-        if (!"FeePlease!FYBX".equals(mCaller)){
+        if (!"FeePlease!FYBX".equals(mCaller)&&!device){
             getMenuInflater().inflate(R.menu.menu_add_icon, menu);
         }
         return super.onCreateOptionsMenu(menu);
@@ -283,13 +289,17 @@ public class CommonDocDetailsActivity extends BaseActivity {
             finish();
         }
         if (item.getItemId() == android.R.id.home) {
-            if (ActivityUtils.isExsitMianActivity(mContext, FormListSelectActivity.class)) {
-                LogUtil.d("正常返回...");
-                onBackPressed();
+            if (device) {
+                endDevice();
             } else {
-                LogUtil.d("非正常返回...");
-                startActivity(new Intent(mContext, FormListSelectActivity.class).putExtra("caller", mCaller));
-                finish();
+                if (ActivityUtils.isExsitMianActivity(mContext, FormListSelectActivity.class)) {
+                    LogUtil.d("正常返回...");
+                    onBackPressed();
+                } else {
+                    LogUtil.d("非正常返回...");
+                    startActivity(new Intent(mContext, FormListSelectActivity.class).putExtra("caller", mCaller));
+                    finish();
+                }
             }
         }
         return true;
@@ -556,6 +566,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
      * 申请单据的审批,提交,录入状态
      */
     private void SetComDocStatus(String real_status) {
+
         if (!TextUtils.isEmpty(real_status)) {
             if (real_status.equals("已审核")) {
                 status_tv.setTextColor(getApplicationContext().getResources().getColor(R.color.approval));
@@ -579,6 +590,9 @@ public class CommonDocDetailsActivity extends BaseActivity {
                 resanddel_ll.setVisibility(View.VISIBLE);
             }
         }
+        if (device){
+            resanddel_ll.setVisibility(View.GONE);
+        }
     }
 
     /**
@@ -1003,26 +1017,30 @@ public class CommonDocDetailsActivity extends BaseActivity {
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if ((keyCode == KeyEvent.KEYCODE_BACK)) {
-            if (ActivityUtils.isExsitMianActivity(mContext, FormListSelectActivity.class)) {
-                LogUtil.d("正常返回...");
-                if ("1".equals(update)){
-                    startActivity(new Intent(mContext, FormListSelectActivity.class).putExtra("caller", mCaller)
-                            .putExtra("update", update));
+            if (device){
+                endDevice();
+            }else{
+                if (ActivityUtils.isExsitMianActivity(mContext, FormListSelectActivity.class)) {
+                    LogUtil.d("正常返回...");
+                    if ("1".equals(update)){
+                        startActivity(new Intent(mContext, FormListSelectActivity.class).putExtra("caller", mCaller)
+                                .putExtra("update", update));
+                        finish();
+                    }else{
+                        onBackPressed();
+                    }
+                } else {
+                    LogUtil.d("非正常返回..."+update);
+                    if ("1".equals(update)){
+                        FormListSelectActivity.reload=true;
+                    }else{
+                        FormListSelectActivity.reload=false;
+                    }
+                    startActivity(
+                            new Intent(mContext, FormListSelectActivity.class)
+                                    .putExtra("caller", mCaller));
                     finish();
-                }else{
-                    onBackPressed();
                 }
-            } else {
-                LogUtil.d("非正常返回..."+update);
-                if ("1".equals(update)){
-                    FormListSelectActivity.reload=true;
-                }else{
-                    FormListSelectActivity.reload=false;
-                }
-                startActivity(
-                        new Intent(mContext, FormListSelectActivity.class)
-                                .putExtra("caller", mCaller));
-                finish();
             }
             return false;
         } else {
@@ -1030,6 +1048,21 @@ public class CommonDocDetailsActivity extends BaseActivity {
         }
 
     }
+    private void endDevice(){
+        String dc_class = null;
+        if (mCaller.equals("DeviceChange!Use")) {
+            dc_class = "使用转移";
+        } else if (mCaller.equals("DeviceChange!Scrap")) {
+            dc_class = "报废";
+        } else if (mCaller.equals("DeviceChange!Maintain")) {
+            dc_class = "保养维护";
+        } else if (mCaller.equals("DeviceChange!Inspect")) {
+            dc_class = "故障送检";
+        }
+        startActivity(new Intent(ct, DeviceQueryActivity.class).putExtra(Constants.FLAG.DEVICE_CALLER, mCaller)
+                .putExtra(Constants.FLAG.DEVICE_CLASS, dc_class));
+        finish();
+    }
 
     /**
      * 图片适配器

+ 6 - 1
app_modular/appworks/src/main/java/com/uas/appworks/activity/DeviceQueryActivity.java

@@ -138,8 +138,13 @@ public class DeviceQueryActivity extends BaseMVPActivity<WorkPlatPresenter> impl
             mClass = intent.getStringExtra(Constants.FLAG.DEVICE_CLASS);
         }
 
+        //TODO gongpengming
         if (!TextUtils.isEmpty(mClass)) {
-            mBaseCondition = "(dc_class = \'" + mClass + "\')";
+            String dc_class="dc_class";
+            if (mCaller!=null&&mCaller.equals("DeviceChange!Maintain")){
+                dc_class="db_class";
+            }
+            mBaseCondition = "("+dc_class+" = \'" + mClass + "\')";
             mCondition = mBaseCondition;
         }
     }

+ 1 - 0
app_modular/appworks/src/main/res/values/strings.xml

@@ -82,6 +82,7 @@
     <string name="text_maintenance">养护管理</string>
     <string name="text_fault_inspection">故障送检</string>
     <string name="text_cycle_count">周期盘点</string>
+    <string name="text_cycle_count_add">添加盘点</string>
     <string name="more_info"><u>详细信息</u></string>
     <string name="cycle">盘点</string>