Browse Source

提交类型 编写设备管理模块的代码
提交内容 设备管理模块的相关多个界面
冲突 版本信息文件出现版本不一致的问题,取网络

Bitliker 8 years ago
parent
commit
09cf2597ac

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Thu Dec 21 11:31:47 CST 2017
-debugName=218
+#Fri Dec 22 13:51:47 CST 2017
+debugName=253
 versionName=611
-debugCode=218
+debugCode=253
 versionCode=150

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

@@ -17,6 +17,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
+import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
@@ -861,7 +862,7 @@ public class ViewUtil {
                             params.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
                         }
                         if (!params.containsKey("master") || params.get("master") == null) {
-                            params.put("master", CommonUtil.getSharedPreferences(ct, "erp_master"));
+                            params.put("master", CommonUtil.getMaster());
                         }
                         if (!params.containsKey("sessionUser"))
                             params.put("sessionUser", CommonUtil.getSharedPreferences(ct, "erp_username"));
@@ -1046,6 +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";
+//        }
  //       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 - 0
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -99,6 +99,9 @@ public class CommonUtil {
             return "";
         }
         String baseUrl = getSharedPreferences(ct, "erp_baseurl");
+//        if (BaseConfig.isDebug()){
+//            baseUrl="http://192.168.253.203:8090/ERP/";
+//        }
 //        baseUrl="http://192.168.253.203:8090/ERP/";
         return baseUrl;
     }
@@ -471,6 +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";
+//      }
         return master;
 
     }

+ 2 - 1
app_modular/apputils/src/main/java/com/modular/apputils/utils/SwitchUtil.java

@@ -13,8 +13,9 @@ public class SwitchUtil {
     }
 
     public static boolean showShebeiguanli() {
-        return false;
+        return true;
     }
 
 
+
 }

+ 6 - 3
app_modular/apputils/src/main/res/layout/menu_seach_include.xml

@@ -6,15 +6,18 @@
 
     <com.core.widget.ClearEditText
         android:id="@+id/search_edit"
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
         android:layout_centerVertical="true"
         android:background="@drawable/search_input"
         android:drawableLeft="@drawable/search"
         android:drawableRight="@drawable/search_clear"
         android:hint="@string/search"
         android:imeOptions="actionSearch"
-        android:paddingRight="26dp"
+        android:maxLines="1"
+        android:singleLine="true"
+    android:paddingRight="26dp"
+        android:lines="1"
         android:textColor="@color/dark_grey"
         android:textColorHint="@color/grey"
         android:textSize="15sp" />

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

@@ -106,7 +106,7 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
         view.findViewById(R.id.addImg).setOnClickListener(this);
         view.findViewById(R.id.backImg).setOnClickListener(this);
         mVoiceSearchView = view.findViewById(R.id.mVoiceSearchView);
-        mVoiceSearchView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+        mVoiceSearchView.getSearch_edit().setOnEditorActionListener(new TextView.OnEditorActionListener() {
             @Override
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                 loadData(pageIndex = 1);
@@ -124,7 +124,15 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
         if (id == R.id.backImg) {
             onBackPressed();
         } else if (R.id.addImg == id) {
-            startActivity(new Intent(ct, DeviceCycleCountAddActivity.class));
+            startActivityForResult(new Intent(ct, DeviceCycleCountAddActivity.class), 0x12);
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (0x12 == requestCode && 0x12 == resultCode) {
+            loadData(pageIndex = 1);
         }
     }
 
@@ -157,11 +165,11 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
         Editable editable = mVoiceSearchView.getText();
         if (editable != null && !StringUtil.isEmpty(editable.toString())) {
             String text = editable.toString();
-            condition = "db_code like '" + text + "' or db_inman like '" + text + "'  or db_devkind like '" + text + "' or db_centercode like '" + text + "'";
+            condition = "db_code like '" + text + "' or db_inman like '" + text + "'  or db_devtype like '" + text + "' or db_centercode like '" + text + "'";
         }
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/common/list.action")
-                .add("condition", "db_class='周期盘点' and db_statuscode='COMMTIED'" + (StringUtil.isEmpty(condition) ? "" : ("  and (" + condition + ")")))
+                .add("condition", "db_class='周期盘点' and db_statuscode='COMMITED'" + (StringUtil.isEmpty(condition) ? "" : ("  and (" + condition + ")")))
                 .add("caller", "DeviceBatch!Stock")
                 .add("page", pageIndex)
                 .add("pageSize", 25)
@@ -170,7 +178,7 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
             @Override
             public void onResponse(Object o) {
                 try {
-                    handleData(TestStr.CYCLECOUNT_MESSAGE);
+                    handleData(o.toString());
                 } catch (Exception e) {
                     if (e != null) {
                         LogUtil.i("e=" + e.getMessage());
@@ -183,7 +191,6 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
     }
 
 
-
     private void handleData(String message) throws Exception {
         JSONObject object = JSON.parseObject(message);
         JSONArray columns = JSONUtil.getJSONArray(object, "columns");
@@ -252,9 +259,4 @@ public class DeviceCycleCountActivity extends BaseActivity implements View.OnCli
     }
 
 
-
-
-
-
-
 }

+ 97 - 26
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountAddActivity.java

@@ -21,6 +21,7 @@ import android.widget.TextView;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.chad.library.adapter.base.BaseViewHolder;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
@@ -28,10 +29,12 @@ import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
+import com.core.model.Approval;
 import com.core.model.SelectBean;
 import com.core.utils.CommonUtil;
 import com.core.utils.ToastUtil;
 import com.core.widget.VoiceSearchView;
+import com.core.widget.listener.EditChangeListener;
 import com.core.widget.view.Activity.SelectActivity;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
@@ -39,6 +42,7 @@ import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.apputils.activity.SelectNetAcitivty;
 import com.uas.appworks.CRM.erp.adapter.CycleCountAdapter;
 import com.uas.appworks.CRM.erp.model.CycleCount;
 import com.uas.appworks.CRM.erp.model.CycleCountAdd;
@@ -124,7 +128,7 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
             @Override
             public void onResponse(Object o) {
                 try {
-                    handlePopData(TestStr.CYCLE_COUNT_ADD);
+                    handlePopData(o.toString());
                 } catch (Exception e) {
                     if (e != null) {
                         LogUtil.i("e=" + e.getMessage());
@@ -134,9 +138,9 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
         }));
     }
 
+    private boolean isSubmitl;
     private void addCycle(List<CycleCountAdd> models) {
         Map<String, Object> formStore = new HashMap<>();
-
         for (CycleCountAdd e : models) {
             if (!StringUtil.isEmpty(e.getValues())) {
                 formStore.put(e.getField(), e.getValues());
@@ -145,6 +149,9 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
                 return;
             }
         }
+        if (isSubmitl)return;
+        isSubmitl=true;
+        progressDialog.show();
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/device/saveAndSubmitDeviceStock.action")
                 .add("caller", "DeviceBatch!Stock")
@@ -154,11 +161,17 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
             @Override
             public void onResponse(Object o) {
                 try {
+                    if (progressDialog!=null){
+                        progressDialog.dismiss();
+                    }
                     boolean success = JSONUtil.getBoolean(o.toString(), "success");
                     if (success) {
+                        setResult(0x12);
                         ToastUtil.showToast(ct, "添加成功");
                         finish();
                     }
+                    isSubmitl=false;
+
                 } catch (Exception e) {
                     if (e != null) {
                         LogUtil.i("e=" + e.getMessage());
@@ -170,7 +183,8 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
 
     private void handlePopData(String message) throws Exception {
         cycleCountAdds = new ArrayList<>();
-        JSONArray items = JSONUtil.getJSONArray(message, "items");
+        JSONObject data = JSONUtil.getJSONObject(message, "data");
+        JSONArray items = JSONUtil.getJSONArray(data, "formdetail");
         for (int i = 0; i < items.size(); i++) {
             cycleCountAdds.add(new CycleCountAdd(items.getJSONObject(i)));
         }
@@ -187,12 +201,25 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
             return models;
         }
 
-        public void updateValues(String field, String values) {
-            for (int i = 0; i < models.size(); i++) {
-                if (models.get(i).getField().equals(field)) {
-                    models.get(i).setValues(values);
-                    notifyItemChanged(i);
-                    break;
+        public void updateValues(int selectPosition, String values) {
+            if (ListUtils.getSize(models) > selectPosition) {
+                models.get(selectPosition).setValues(values);
+                notifyItemChanged(selectPosition);
+            }
+        }
+
+        public void updateValues(String message) {
+            if (!StringUtil.isEmpty(message) && JSONUtil.validateJSONObject(message)) {
+                JSONObject object = JSON.parseObject(message);
+                if (models != null) {
+                    for (CycleCountAdd e : models) {
+                        for (Map.Entry<String, Object> map : object.entrySet()) {
+                            if (map.getKey().equals(e.getField()) && map.getValue() != null) {
+                                e.setValues(map.getValue().toString());
+                            }
+                        }
+                    }
+                    notifyDataSetChanged();
                 }
             }
         }
@@ -202,6 +229,26 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
             drawable = getResources().getDrawable(R.drawable.ic_menu_retract);
         }
 
+        private class TextChangListener extends EditChangeListener {
+            ViewHodler hodler;
+            private int position;
+
+            public TextChangListener(ViewHodler hodler, int position) {
+                this.hodler = hodler;
+                this.position = position;
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                if (this.position >= 0) {
+                    if (this.hodler.valuesEd != null) {
+                        String valueEt = this.hodler.valuesEd.getText().toString();
+                        models.get(this.position).setValues(valueEt == null ? "" : valueEt);
+                    }
+                }
+            }
+        }
+
         @Override
         public ViewHodler onCreateViewHolder(ViewGroup parent, int viewType) {
             return new ViewHodler(parent);
@@ -212,7 +259,7 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
             CycleCountAdd model = models.get(position);
             holder.captionTv.setText(model.getCaption());
             holder.valuesEd.setText(model.getValues());
-            if (model.getType().equals("DBFIND")) {
+            if (model.getType().equals("DBFIND") || model.getType().equals("C")) {
                 holder.valuesEd.setFocusableInTouchMode(false);
                 holder.valuesEd.setTag(R.id.tag_key, position);
                 holder.valuesEd.setTag(model);
@@ -222,6 +269,7 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
                 holder.valuesEd.setFocusableInTouchMode(true);
                 holder.valuesEd.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
             }
+            holder.valuesEd.addTextChangedListener(new TextChangListener(holder, position));
         }
 
         @Override
@@ -259,22 +307,37 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
                 try {
                     if (view.getId() == R.id.valuesEd) {
                         CycleCountAdd model = (CycleCountAdd) view.getTag();
-                        int position = (int) view.getTag(R.id.tag_key);
-                        HashMap param = new HashMap<>();
-                        param.put("which", model.getWhich());
-                        param.put("caller", "DeviceBatch!Stock");
-                        param.put("field", model.getField());
-                        param.put("pageSize", 1000);
-                        Bundle bundle = new Bundle();
-                        bundle.putSerializable("param", param);
+                        selectPosition = (int) view.getTag(R.id.tag_key);
                         Intent intent = new Intent(ct, SelectActivity.class);
-                        intent.putExtra("type", 1);
-                        intent.putExtras(bundle);
-                        intent.putExtra("key", "datas");
-                        intent.putExtra("showKey", model.getField());
-                        intent.putExtra("action", "mobile/common/getDbfind.action");
                         intent.putExtra("title", model.getCaption());
-                        startActivityForResult(intent, 0x21);
+                        if (model.getType().equals("C")) {
+                            ArrayList<SelectBean> formBeaans = new ArrayList<>();
+                            for (Approval.Data e : model.getDatas()) {
+                                formBeaans.add(new SelectBean(e.display));
+                            }
+                            intent.putExtra("type", 2);
+                            intent.putParcelableArrayListExtra("data", formBeaans);
+                            startActivityForResult(intent, 0x21);
+                        } else {
+                            startActivityForResult(new Intent(ct, SelectNetAcitivty.class)
+                                            .putExtra("fieldKey", model.getField())
+                                            .putExtra("caller", "DeviceBatch!Stock")
+                                            .putExtra("isForm", true)
+                                    , 90);
+//                            HashMap param = new HashMap<>();
+//                            param.put("which", model.getWhich());
+//                            param.put("caller", "DeviceBatch!Stock");
+//                            param.put("field", model.getField());
+//                            param.put("pageSize", 1000);
+//                            Bundle bundle = new Bundle();
+//                            bundle.putSerializable("param", param);
+//                            intent.putExtra("type", 1);
+//                            intent.putExtras(bundle);
+//                            intent.putExtra("key", "datas");
+//                            intent.putExtra("showKey", model.getField());
+//                            intent.putExtra("action", "mobile/common/getDbfind.action");
+                        }
+
                     }
                 } catch (Exception e) {
 
@@ -283,15 +346,23 @@ public class DeviceCycleCountAddActivity extends BaseActivity implements View.On
         };
     }
 
+    private int selectPosition;
 
     @Override
     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 || StringUtil.isEmpty(b.getJson()) || popAdapter == null) return;
-            popAdapter.updateValues(b.getFields(), b.getName());
+            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);
+
         }
     }
 }

+ 14 - 9
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountDetailsActivity.java

@@ -43,6 +43,8 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
         initData();
     }
 
+    private String id;
+
     private void initData() {
         String sessionId = CommonUtil.getSharedPreferences(ct, "sessionId");
         String emCode = CommonUtil.getEmcode();
@@ -58,8 +60,9 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
         Intent intent = getIntent();
         if (intent != null) {
             isAct = intent.getBooleanExtra("isAct", false);
-            String title =isAct?"已盘点":"未盘点";
-            if (title!=null){
+            id = intent.getStringExtra("id");
+            String title = isAct ? "已盘点" : "未盘点";
+            if (title != null) {
                 getSupportActionBar().setTitle(title);
             }
             String modelJSON = intent.getStringExtra("models");
@@ -74,7 +77,7 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
     }
 
     private void loadData() {
-        String condition = isAct ? "nvl(dc_actionresult,' ')=' '" : "nvl(dc_actionresult,' ')<>' '";
+        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")
@@ -84,7 +87,7 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
             @Override
             public void onResponse(Object o) {
                 try {
-                    handleData(TestStr.CYCLE_DETAILS);
+                    handleData(o.toString());
                 } catch (Exception e) {
                     if (e != null) {
                         LogUtil.i("e=" + e.getMessage());
@@ -110,10 +113,10 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
         CycleCount cycleCount = new CycleCount();
         for (int i = 0; i < columns.size(); i++) {
             JSONObject item = columns.getJSONObject(i);
-            String field = JSONUtil.getText(item, "dataIndex", "field");
-            String caption = JSONUtil.getText(item, "caption");
-            int width = JSONUtil.getInt(item, "width");
-            String values = JSONUtil.getText(data, field);
+            String field = JSONUtil.getText(item, "dataIndex", "field", "dg_field");
+            String caption = JSONUtil.getText(item, "caption", "dg_caption");
+            int width = JSONUtil.getInt(item, "width", "dg_appwidth");
+            String values = JSONUtil.getText(data, field.toUpperCase());
             CycleCount.Data o = new CycleCount.Data(caption, values);
             if (caption.equals("ID")) {
                 cycleCount.setId(values);
@@ -132,7 +135,9 @@ public class DeviceCycleCountDetailsActivity extends BaseActivity {
 //                }
 //                i++;
 //            }
-            cycleCount.addData(o);
+            if (width > 0) {
+                cycleCount.addData(o);
+            }
         }
         return cycleCount;
     }

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

@@ -1,5 +1,6 @@
 package com.uas.appworks.CRM.erp.activity;
 
+import android.Manifest;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
@@ -17,6 +18,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
+import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
@@ -82,7 +84,8 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
         }
         loadData();
     }
-    private void initJSONData(String message) throws Exception{
+
+    private void initJSONData(String message) throws Exception {
         JSONArray array = JSON.parseArray(message);
         JSONObject object;
         CycleCount.Data data;
@@ -118,6 +121,7 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
 
 
     private void loadData() {
+        progressDialog.show();
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/device/getCheckQty.action")
                 .add("caller", "DeviceBatch!Stock")
@@ -127,17 +131,21 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
             @Override
             public void onResponse(Object o) {
                 try {
-                    handleData(TestStr.CYCLE_INFO);
+                    handleData(o.toString());
                 } catch (Exception e) {
                     if (e != null) {
                         LogUtil.i("e=" + e.getMessage());
                     }
                 }
+                if (progressDialog != null) {
+                    progressDialog.dismiss();
+                }
             }
         }));
     }
 
     private void submitCycle(String de_code) {
+        progressDialog.show();
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/device/deviceStock.action")
                 .add("caller", "DeviceBatch!Stock")
@@ -147,13 +155,17 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
                 .build(), new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
             public void onResponse(Object o) {
+                if (progressDialog != null) {
+                    progressDialog.dismiss();
+                }
                 try {
-                    handleSubmitCycle(TestStr.SUBMIT_CYCLE);
+                    handleSubmitCycle(o.toString());
                 } catch (Exception e) {
                     if (e != null) {
                         LogUtil.i("e=" + e.getMessage());
                     }
                 }
+
             }
         }));
     }
@@ -165,26 +177,32 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
         String centercode = JSONUtil.getText(object, "DB_CENTERCODE");
         String centername = JSONUtil.getText(object, "DB_CENTERNAME");
         String linecode = JSONUtil.getText(object, "DB_LINECODE");
-        String devkind = JSONUtil.getText(object, "DB_DEVKIND");
+        String devkind = JSONUtil.getText(object, "DB_DEVTYPE");
         String actionqty = JSONUtil.getText(object, "DB_ACTIONQTY");
         String unactionqty = JSONUtil.getText(object, "DB_UNACTIONQTY");
         codeTv.setText(code);
         centerTv.setText(centername);
         lineTv.setText(linecode);
-        kindTv.setText(linecode);
+        kindTv.setText(devkind);
         actionqtyTv.setText(Html.fromHtml("<u>" + actionqty + "</u>"));
         unactionqtyTv.setText(Html.fromHtml("<u>" + unactionqty + "</u>"));
-
     }
 
-
     private void handleSubmitCycle(String message) throws Exception {
-        JSONObject object = JSONUtil.getJSONObject(message, "data");
-        String popCode = JSONUtil.getText(object, "DE_CODE");
-        String popName = JSONUtil.getText(object, "DE_NAME");
-        String popGui = JSONUtil.getText(object, "DE_SPEC");
-        String popUnActNum = String.valueOf(JSONUtil.getInt(object, "DB_UNACTIONQTY"));
-        showMuenPop(popCode, popName, popGui, popUnActNum);
+        boolean success = JSONUtil.getBoolean(message, "success");
+        if (success) {
+            JSONObject object = JSONUtil.getJSONObject(message, "data");
+            String popCode = JSONUtil.getText(object, "DE_CODE");
+            String popName = JSONUtil.getText(object, "DE_NAME");
+            String popGui = JSONUtil.getText(object, "DE_SPEC");
+            String popUnActNum = String.valueOf(JSONUtil.getInt(object, "DB_UNACTIONQTY"));
+            showMuenPop(popCode, popName, popGui, popUnActNum);
+        } else {
+            String exceptionInfo = JSONUtil.getText(message, "exceptionInfo");
+            if (!StringUtil.isEmpty(exceptionInfo)) {
+                ToastUtil.showToast(ct, exceptionInfo);
+            }
+        }
     }
 
     private PopupWindow mPopupWindow;
@@ -241,11 +259,23 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
     public void onClick(View v) {
         int id = v.getId();
         if (id == R.id.actionqtyTv) {
-            startActivity(new Intent(ct, DeviceCycleCountDetailsActivity.class).putExtra("isAct", true));
+            startActivity(new Intent(ct, DeviceCycleCountDetailsActivity.class).putExtra("isAct", true)
+                    .putExtra("id", this.id));
         } else if (id == R.id.unactionqtyTv) {
-            startActivity(new Intent(ct, DeviceCycleCountDetailsActivity.class).putExtra("isAct", false));
+            startActivity(new Intent(ct, DeviceCycleCountDetailsActivity.class).putExtra("isAct", false)
+                    .putExtra("id", this.id));
         } else if (id == R.id.cycleBtn || R.id.nextBtn == id) {
-            startActivityForResult(new Intent(ct, CaptureActivity.class), 0x21);
+            requestPermission(Manifest.permission.CAMERA, new Runnable() {
+                @Override
+                public void run() {
+                    startActivityForResult(new Intent(ct, CaptureActivity.class), 0x21);
+                }
+            }, new Runnable() {
+                @Override
+                public void run() {
+                    ToastUtil.showToast(ct, R.string.not_system_permission);
+                }
+            });
             if (mPopupWindow != null && mPopupWindow.isShowing()) {
                 mPopupWindow.dismiss();
             }
@@ -264,8 +294,8 @@ public class DeviceCycleCountInfoActivity extends BaseActivity implements View.O
             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";
                     submitCycle(result);
                 }
             }

+ 15 - 26
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java

@@ -131,7 +131,6 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                     if (!ListUtils.isEmpty(mDatasNet)) mDatasNet.clear();
                     if (StringUtil.isEmpty(result)) return;
                     LogUtil.prinlnLongMsg("result:", result);
-                    //TODO 修改为测试数据
                     JSONArray forms = JSON.parseObject(result).getJSONObject("data").getJSONArray("formdetail");
                     grids = JSON.parseObject(result).getJSONObject("data").getJSONArray("gridetail");
                     //主表分组
@@ -172,6 +171,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                 data.setFdid(items.getIntValue("fd_id"));
                                 data.setValue(items.getString("fd_value"));
 
+
                                 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,7 +184,9 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                     }
                                     endDate_v = data.getValue();
                                 }
-
+                                if (data.getName().equals("设备编号")){
+                                    data.setValue(noCode);
+                                }
                                 data.setGroupId(formGroupId);
                                 data.setGroup(items.getString("fd_group"));
                                 data.setIsDefault(items.getIntValue("mfd_isdefault"));
@@ -467,19 +469,12 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
 
                     break;
                 case Constants.HTTP_SUCCESS_INIT:
-                    Boolean success = null;
                     try {
-                        success = JSON.parseObject(result).getBoolean("success");
-                        if ("ExtraWork$".equals(caller)) {
-                            va_id = JSON.parseObject(result).getIntValue("wod_id");
-                        } else {
-                            va_id = JSON.parseObject(result).getIntValue(formidkey);
-                        }
-                        if (success) {
-                            judgeApprovers(va_id);
-                        } else {
-                            ToastMessage("接口数据非法!");
-                        }
+                        JSONObject object=JSON.parseObject(result);
+                        va_id = JSONUtil.getInt(object,"dc_id","db_id");
+                        LogUtil.i("va_id="+va_id);
+                        LogUtil.i("result="+result);
+                        judgeApprovers(va_id);
                     } catch (Exception e) {
                         e.printStackTrace();
                         ToastMessage(result);
@@ -491,7 +486,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                 case 0x21:
                     try {
                         LogUtil.d("result:" + result);
-                        success = JSON.parseObject(result).getBoolean("success");
+                        boolean success = JSON.parseObject(result).getBoolean("success");
                         if (success) {
                             judgeApprovers(formid);
                         } else {
@@ -573,6 +568,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
             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)
@@ -600,7 +596,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
         initView();
         initListener();
 
-        initData();
+        loadData();
     }
 
     private String status;
@@ -639,9 +635,6 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
 
     int formid;
 
-    private void initData() {
-        loadData();
-    }
 
 
     @Override
@@ -664,7 +657,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                 dc_class = "使用转移";
             } else if (caller.equals("DeviceChange!Scrap")) {
                 dc_class = "报废";
-            } else if (caller.equals("DeviceBatch!Maintain")) {
+            } else if (caller.equals("DeviceChange!Maintain")) {
                 dc_class = "保养维护";
             } else if (caller.equals("DeviceChange!Inspect")) {
                 dc_class = "故障送检";
@@ -1351,7 +1344,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                 break;
             case 0x25:
                 mAdapter = null;
-                initData();
+                loadData();
                 break;
             case 0x11:
                 try {
@@ -2016,11 +2009,7 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
         progressDialog.show();
         click_btn.setEnabled(false);
         String url = null;
-        if ("ExtraWork$".equals(caller)) {
-            url = CommonUtil.getAppBaseUrl(ct) + "/mobile/oa/ExtraWorkSaveAndSubmit.action";
-        } else {
-            url = CommonUtil.getAppBaseUrl(ct) + "/mobile/oa/commonSaveAndSubmit.action";
-        }
+        url = CommonUtil.getAppBaseUrl(ct) + "/mobile/oa/commonSaveAndSubmit.action";
         Map<String, Object> params = new HashMap<>();
         params.put("caller", caller);
         params.put("formStore", formStore);

+ 17 - 4
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceManageActivity.java

@@ -1,5 +1,6 @@
 package com.uas.appworks.CRM.erp.activity;
 
+import android.Manifest;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
@@ -44,7 +45,7 @@ public class DeviceManageActivity extends BaseActivity {
 
         models.add(new DeviceManage(3, R.drawable.icon_application_use, StringUtil.getMessage(R.string.text_application_use)).setCazz(DeviceDataFormAddActivity.class).addString("caller", "DeviceChange!Use"));
         models.add(new DeviceManage(4, R.drawable.icon_scrap_application, StringUtil.getMessage(R.string.text_scrap_application)).setCazz(DeviceDataFormAddActivity.class).addString("caller", "DeviceChange!Scrap"));
-        models.add(new DeviceManage(5, R.drawable.icon_maintenance, StringUtil.getMessage(R.string.text_maintenance)).setCazz(DeviceDataFormAddActivity.class).addString("caller", "DeviceBatch!Maintain"));
+        models.add(new DeviceManage(5, R.drawable.icon_maintenance, StringUtil.getMessage(R.string.text_maintenance)).setCazz(DeviceDataFormAddActivity.class).addString("caller", "DeviceChange!Maintain"));
         models.add(new DeviceManage(6, R.drawable.icon_fault_inspection, StringUtil.getMessage(R.string.text_fault_inspection)).setCazz(DeviceDataFormAddActivity.class).addString("caller", "DeviceChange!Inspect"));
         //周期盘点
         models.add(new DeviceManage(7, R.drawable.icon_cycle_count, StringUtil.getMessage(R.string.text_cycle_count)).setCazz(DeviceCycleCountActivity.class));
@@ -62,10 +63,10 @@ public class DeviceManageActivity extends BaseActivity {
         });
     }
 
-    private void clickDevice(DeviceManage manage) throws Exception {
+    private void clickDevice(final DeviceManage manage) throws Exception {
         if (manage != null) {
             Class cazz = manage.getCazz();
-            Intent intent = new Intent(ct, cazz);
+            final Intent intent = new Intent(ct, cazz);
 
             Bundle bundle = manage.getBundle();
             if (bundle != null) {
@@ -73,7 +74,17 @@ public class DeviceManageActivity extends BaseActivity {
                 intent.putExtra("caller", bundle.getString("caller"));
             }
             if (manage.getRequest() > 0) {
-                startActivityForResult(intent, manage.getRequest());
+                requestPermission(Manifest.permission.CAMERA, new Runnable() {
+                    @Override
+                    public void run() {
+                        startActivityForResult(intent, manage.getRequest());
+                    }
+                }, new Runnable() {
+                    @Override
+                    public void run() {
+                        ToastUtil.showToast(ct, R.string.not_system_permission);
+                    }
+                });
             } else {
                 startActivity(intent);
             }
@@ -90,6 +101,8 @@ public class DeviceManageActivity extends BaseActivity {
                     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));
                 }
             }

+ 35 - 28
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/ScanDetailActivity.java

@@ -27,6 +27,7 @@ import com.common.system.DisplayUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
@@ -72,9 +73,6 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
         if (intent != null) {
             decode = intent.getStringExtra("decode");
             LogUtil.i("decode=" + decode);
-            if (StringUtil.isEmpty(decode)) {
-                decode = "43984";
-            }
         }
         baseInfoList = new ArrayList<>();
         moreInfoList = new ArrayList<>();
@@ -184,17 +182,17 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
             onBackPressed();
         } 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));
+        } else if (R.id.popUseApplyBtn == id) {
+            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).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("caller", "DeviceChange!Scrap").putExtra("noCode", decode));
             dismissMenuPop();
         } else if (R.id.popMaintenanceBtn == id) {
-            startActivity(new Intent(ct,DeviceDataFormAddActivity.class).putExtra("caller", "DeviceBatch!Maintain").putExtra("noCode",decode));
+            startActivity(new Intent(ct, DeviceDataFormAddActivity.class).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("caller", "DeviceChange!Inspect").putExtra("noCode", decode));
             dismissMenuPop();
         }
 
@@ -216,7 +214,7 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
             @Override
             public void onResponse(Object o) {
                 try {
-                    handleData(TestStr.SCAN_DETAIL);
+                    handleData(o.toString());
                 } catch (Exception e) {
                     if (e != null) {
                         LogUtil.i("e=" + e.getMessage());
@@ -229,27 +227,36 @@ public class ScanDetailActivity extends BaseActivity implements View.OnClickList
     }
 
     private void handleData(String message) throws Exception {
-        JSONObject object = JSON.parseObject(message);
-        //处理主表
-        JSONArray formItem = JSONUtil.getJSONArray(object, "formItem");
-        JSONObject formData = JSONUtil.getJSONObject(object, "formData");
-        List<DeviceInfo> formListData = handleFromGrid(true, null, formItem, formData);
-        //详细配置
-        JSONArray grid1Item = JSONUtil.getJSONArray(object, "grid1Item");
-        JSONArray grid1Data = JSONUtil.getJSONArray(object, "grid1Data");
-        List<DeviceInfo> moreListData = new ArrayList<>();
-        for (int i = 0; i < grid1Data.size(); i++) {
-            moreListData.addAll(handleFromGrid(false, "详细配置" + (i + 1), grid1Item, grid1Data.getJSONObject(i)));
+        JSONObject json = JSON.parseObject(message);
+        boolean success = JSONUtil.getBoolean(json, "success");
+        JSONObject object = JSONUtil.getJSONObject(json, "data");
+        if (success) {
+            //处理主表
+            JSONArray formItem = JSONUtil.getJSONArray(object, "formItem");
+            JSONObject formData = JSONUtil.getJSONObject(object, "formData");
+            List<DeviceInfo> formListData = handleFromGrid(true, null, formItem, formData);
+            //详细配置
+            JSONArray grid1Data = JSONUtil.getJSONArray(object, "grid1Data");
+            List<DeviceInfo> moreListData = new ArrayList<>();
+            JSONArray grid1Item = JSONUtil.getJSONArray(object, "grid1Item");
+            for (int i = 0; i < grid1Data.size(); i++) {
+                moreListData.addAll(handleFromGrid(false, "详细配置" + (i + 1), grid1Item, grid1Data.getJSONObject(i)));
+            }
+            //设备履历数据
+            JSONArray grid2Item = JSONUtil.getJSONArray(object, "grid2Item");
+            JSONArray grid2Data = JSONUtil.getJSONArray(object, "grid2Data");
+            List<DeviceInfo> historyListData = new ArrayList<>();
+            for (int i = 0; i < grid2Data.size(); i++) {
+                historyListData.addAll(handleFromGrid(false, "设备履历" + (i + 1), grid2Item, grid2Data.getJSONObject(i)));
+            }
+            setData2Adapter(formListData, moreListData, historyListData);
+        } else {
+            String exceptionInfo = JSONUtil.getText(message, "exceptionInfo");
+            if (!StringUtil.isEmpty(exceptionInfo)) {
+                ToastUtil.showToast(ct, exceptionInfo);
+            }
         }
 
-        //设备履历数据
-        JSONArray grid2Item = JSONUtil.getJSONArray(object, "grid2Item");
-        JSONArray grid2Data = JSONUtil.getJSONArray(object, "grid2Data");
-        List<DeviceInfo> historyListData = new ArrayList<>();
-        for (int i = 0; i < grid2Item.size(); i++) {
-            historyListData.addAll(handleFromGrid(false, "设备履历" + (i + 1), grid2Item, grid2Data.getJSONObject(i)));
-        }
-        setData2Adapter(formListData, moreListData, historyListData);
     }
 
     private void setData2Adapter(int selectItem) {

+ 20 - 3
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/model/CycleCountAdd.java

@@ -1,8 +1,13 @@
 package com.uas.appworks.CRM.erp.model;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.data.JSONUtil;
+import com.core.model.Approval;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by Bitlike on 2017/12/19.
@@ -16,17 +21,32 @@ public class CycleCountAdd {
     private String values;
     private String type;
     private String which;
+    private List<Approval.Data> datas = new ArrayList<>();
 
     public CycleCountAdd(JSONObject object) {
         setValues(JSONUtil.getText(object, "fd_defaultvalue"));
         setField(JSONUtil.getText(object, "fd_field"));
         setCaption(JSONUtil.getText(object, "fd_caption"));
         setType(JSONUtil.getText(object, "fd_type"));
+        if ("T".equals(JSONUtil.getText(object, "fd_dbfind"))) {
+            setType("DBFIND");
+        }
+        if (getType().equals("C")) {
+            JSONArray combostores = JSONUtil.getJSONArray(object, "COMBOSTORE");
+            for (int i = 0; i < combostores.size(); i++) {
+                JSONObject o = combostores.getJSONObject(i);
+                datas.add(new Approval.Data(JSONUtil.getText(o, "DLC_VALUE"), JSONUtil.getText(o, "DLC_DISPLAY")));
+            }
+        }
         setAllowblank(JSONUtil.getBoolean(object, "fd_allowblank"));
         setId(JSONUtil.getInt(object, "fd_id"));
         setWhich("from");
     }
 
+    public List<Approval.Data> getDatas() {
+        return datas;
+    }
+
     public String getType() {
         return type == null ? "" : type;
 
@@ -69,9 +89,6 @@ public class CycleCountAdd {
     }
 
 
-
-
-
     public String getValues() {
         return values == null ? "" : values;
     }

+ 3 - 2
app_modular/appworks/src/main/res/layout/item_pop_device_cyclecount.xml

@@ -7,10 +7,11 @@
 
     <TextView
         android:id="@+id/captionTv"
-        android:layout_width="wrap_content"
+        android:layout_width="70dp"
         android:textColor="@color/text_hine"
         android:layout_height="wrap_content"
-        android:text="盘点单号:" />
+        android:paddingBottom="3dp"
+        android:text="" />
 
     <EditText
         android:id="@+id/valuesEd"

+ 23 - 12
app_modular/appworks/src/main/res/layout/pop_device_cyclecount.xml

@@ -1,29 +1,28 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical">
 
-    <android.support.v7.widget.RecyclerView
-        android:id="@+id/mRecyclerView"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-
     <LinearLayout
+        android:id="@+id/bottom"
         android:layout_width="match_parent"
-        android:layout_height="55dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
         android:divider="@drawable/spacer_medium"
         android:gravity="center_horizontal"
         android:orientation="horizontal"
         android:padding="@dimen/padding"
+        android:weightSum="7"
         android:showDividers="middle">
 
         <Button
             android:id="@+id/cancelBtn"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
+            android:paddingTop="@dimen/padding"
+            android:paddingBottom="@dimen/padding"
+            android:layout_weight="2"
             android:background="@drawable/bg_bule_btn"
             android:text="取消"
             android:textColor="@color/white" />
@@ -32,18 +31,30 @@
             android:id="@+id/sureBtn"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
+            android:layout_weight="2"
             android:background="@drawable/bg_bule_btn"
             android:text="确认"
+            android:paddingTop="@dimen/padding"
+            android:paddingBottom="@dimen/padding"
             android:textColor="@color/white" />
 
         <Button
             android:id="@+id/resetBtn"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
+            android:layout_weight="2"
+            android:paddingTop="@dimen/padding"
+            android:paddingBottom="@dimen/padding"
             android:background="@drawable/bg_bule_btn"
             android:text="重置"
             android:textColor="@color/white" />
     </LinearLayout>
-</LinearLayout>
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/mRecyclerView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_above="@id/bottom" />
+
+
+</RelativeLayout>