Parcourir la source

条码拆分调整
权限管控

RaoMeng il y a 6 ans
Parent
commit
f23997eb4d

BIN
.idea/caches/build_file_checksums.ser


+ 0 - 4
.idea/encodings.xml

@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
-</project>

+ 1 - 0
.idea/gradle.xml

@@ -16,6 +16,7 @@
           </set>
         </option>
         <option name="resolveModulePerSourceSet" value="false" />
+        <option name="testRunner" value="PLATFORM" />
       </GradleProjectSettings>
     </option>
   </component>

+ 1 - 1
.idea/misc.xml

@@ -5,7 +5,7 @@
       <configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
     </configurations>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">

+ 0 - 26
app/src/main/java/com/uas/keg_storage/activity/IndexActivity.java

@@ -57,20 +57,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                 VolleyUtil.METHOD_POST, pageType);
         //原材料出库采集方式
         VolleyUtil.requestProdOutType(getApplicationContext(), GloableParams.ADDRESS_GET_FIELD_DATA);
-
-        initPermissions();
-    }
-
-    private void initPermissions() {
-        String[] permissions = {
-                Manifest.permission.CAMERA
-                , Manifest.permission.WRITE_EXTERNAL_STORAGE
-        };
-        for (String permission : permissions) {
-            if (PermissionUtil.lacksPermissions(this, permission)) {
-                PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permission);
-            }
-        }
     }
 
     @Override
@@ -191,18 +177,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
 //        }
     }
 
-    @Override
-    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-        if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
-            if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
-                //没有获取到权限
-            } else {
-
-            }
-        }
-    }
-
     @Override
     public void onBackPressed() {
         if (mExitPopupWindow.isShowing()) {

+ 37 - 1
app/src/main/java/com/uas/keg_storage/activity/MainActivity.java

@@ -1,9 +1,12 @@
 package com.uas.keg_storage.activity;
 
+import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
+import android.support.v7.app.AlertDialog;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 
@@ -15,6 +18,10 @@ import com.uas.keg_storage.interfaces.BackHandlerInterface;
 import com.uas.keg_storage.tools.DataSourceManager;
 import com.uas.keg_storage.tools.SharedPreUtil;
 import com.uas.keg_storage.util.CommonUtil;
+import com.yanzhenjie.permission.AndPermission;
+import com.yanzhenjie.permission.Permission;
+import com.yanzhenjie.permission.Rationale;
+import com.yanzhenjie.permission.RequestExecutor;
 
 import java.util.List;
 import java.util.Map;
@@ -34,7 +41,7 @@ public class MainActivity extends BaseActivity implements BackHandlerInterface {
         setContentView(R.layout.activity_main);
 
 //        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
-
+        initPermissions();
         Intent intent = getIntent();
         if (intent != null) {
             isConnected = intent.getBooleanExtra("isConnected", false);
@@ -84,6 +91,35 @@ public class MainActivity extends BaseActivity implements BackHandlerInterface {
 
     }
 
+    private void initPermissions() {
+        AndPermission.with(this)
+                .runtime()
+                .permission(
+                        Permission.Group.STORAGE,
+                        Permission.Group.CAMERA
+                )
+                .rationale(new Rationale<List<String>>() {
+                    @Override
+                    public void showRationale(Context context, List<String> data, RequestExecutor executor) {
+                        new AlertDialog.Builder(MainActivity.this)
+                                .setTitle("提示")
+                                .setMessage("APP运行需要部分权限,请确认授权")
+                                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        executor.cancel();
+                                    }
+                                })
+                                .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        executor.execute();
+                                    }
+                                })
+                                .show();
+                    }
+                }).start();
+    }
 
     @Override
     protected void onDestroy() {

+ 5 - 5
app/src/main/java/com/uas/keg_storage/activity/SplashActivity.java

@@ -38,13 +38,13 @@ public class SplashActivity extends BaseActivity {
                 case VolleyUtil.SUCCESS_SUCCESS:
                     //添加缓存
                     saveCache(mIp, mPort);
-                    if (time <= 2000) {
+                    if (time <= 1500) {
                         mHandler.postDelayed(new Runnable() {
                             @Override
                             public void run() {
                                 startLogin();
                             }
-                        }, 2000 - time);
+                        }, 1500 - time);
                     } else {
                         startLogin();
                     }
@@ -53,13 +53,13 @@ public class SplashActivity extends BaseActivity {
                 case VolleyUtil.FAILED_FAILED:
                     String notice = (String) msg.obj;
                     CommonUtil.toastNoRepeat(SplashActivity.this, notice);
-                    if (time <= 2000) {
+                    if (time <= 1500) {
                         mHandler.postDelayed(new Runnable() {
                             @Override
                             public void run() {
                                 startServer();
                             }
-                        }, 2000 - time);
+                        }, 1500 - time);
                     } else {
                         startServer();
                     }
@@ -133,7 +133,7 @@ public class SplashActivity extends BaseActivity {
                 public void run() {
                     startServer();
                 }
-            }, 2000);
+            }, 1500);
         }
     }
 

+ 25 - 24
app/src/main/java/com/uas/keg_storage/fragment/IOCOutMakeMaterialOper.java

@@ -304,17 +304,18 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                             }
                         } else {
                             mResultLl.setVisibility(View.VISIBLE);
+                            mResultTestBtn.setVisibility(View.VISIBLE);
                             mCollectResultTextView.setText(null);
                             JSONArray listArray = dataObject.optJSONArray("nolist");
                             if (mCollectType.equals("byBarcode")) {
                                 String barcodeResult = "采集成功;" + JsonUtils.optStringNotNull(dataObject, "finishno")
                                         + "\n条码:" + JsonUtils.optStringNotNull(messageObject, "BAR_CODE")
-                                        + "数量:" + CommonUtil.doubleFormat(messageObject.optDouble("BAR_REMAIN"))
-                                        + "批号:" + JsonUtils.optStringNotNull(messageObject, "BAR_BATCHCODE")
-                                        + "料号:" + JsonUtils.optStringNotNull(messageObject, "BAR_PRODCODE")
-                                        + "名称规格:" + messageObject.optString("PR_DETAIL")
+                                        + "\n数量:" + CommonUtil.doubleFormat(messageObject.optDouble("BAR_REMAIN"))
+                                        + "\n批号:" + JsonUtils.optStringNotNull(messageObject, "BAR_BATCHCODE")
+                                        + "\n料号:" + JsonUtils.optStringNotNull(messageObject, "BAR_PRODCODE")
+                                        + "\n名称规格:" + messageObject.optString("PR_DETAIL")
                                         + "  " + JsonUtils.optStringNotNull(messageObject, "PR_SPEC")
-                                        + "仓位:" + JsonUtils.optStringNotNull(messageObject, "BAR_LOCATION");
+                                        + "\n仓位:" + JsonUtils.optStringNotNull(messageObject, "BAR_LOCATION");
 
                                 if (listArray != null && listArray.length() > 0) {
                                     for (int i = 0; i < listArray.length(); i++) {
@@ -327,7 +328,6 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                                 }
 
                                 mCollectResultTextView.setText(barcodeResult);
-                                mResultTestBtn.setVisibility(View.VISIBLE);
 
                                 mBarcodeTableLayout.setVisibility(View.GONE);
                                 mBoxTableLayout.setVisibility(View.GONE);
@@ -351,10 +351,10 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                             } else if (mCollectType.equals("byBox")) {
                                 String boxResult = "采集成功;" + JsonUtils.optStringNotNull(dataObject, "finishno")
                                         + "\n箱号:" + JsonUtils.optStringNotNull(messageObject, "BAR_OUTBOXCODE1")
-                                        + "数量:" + CommonUtil.doubleFormat(messageObject.optDouble("BAR_REMAIN"))
-                                        + "批号:" + JsonUtils.optStringNotNull(messageObject, "BAR_BATCHCODE")
-                                        + "料号:" + JsonUtils.optStringNotNull(messageObject, "BAR_PRODCODE")
-                                        + "名称规格:" + JsonUtils.optStringNotNull(messageObject, "PR_DETAIL")
+                                        + "\n数量:" + CommonUtil.doubleFormat(messageObject.optDouble("BAR_REMAIN"))
+                                        + "\n批号:" + JsonUtils.optStringNotNull(messageObject, "BAR_BATCHCODE")
+                                        + "\n料号:" + JsonUtils.optStringNotNull(messageObject, "BAR_PRODCODE")
+                                        + "\n名称规格:" + JsonUtils.optStringNotNull(messageObject, "PR_DETAIL")
                                         + "  " + JsonUtils.optStringNotNull(messageObject, "PR_SPEC");
 
 
@@ -369,7 +369,6 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                                 }
 
                                 mCollectResultTextView.setText(boxResult);
-                                mResultTestBtn.setVisibility(View.VISIBLE);
 
                                 mBarcodeTableLayout.setVisibility(View.GONE);
                                 mBoxTableLayout.setVisibility(View.GONE);
@@ -537,6 +536,7 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                 if (actionId == EditorInfo.IME_ACTION_SEND
                         || actionId == EditorInfo.IME_ACTION_DONE
+                        || actionId == EditorInfo.IME_ACTION_NEXT
                         || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
                     confirmEvent();
                     return true;
@@ -773,17 +773,18 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
 
                             String barcodeResult = "采集成功!\n"
                                     + "料号:" + mBarcodeDetailBean.getBI_PRODCODE()
-                                    + "品牌:" + mBarcodeDetailBean.getBI_BRAND()
-                                    + "名称规格:" + mBarcodeDetailBean.getPR_DETAIL()
+                                    + "\n品牌:" + mBarcodeDetailBean.getBI_BRAND()
+                                    + "\n名称规格:" + mBarcodeDetailBean.getPR_DETAIL()
                                     + "  " + mBarcodeDetailBean.getPR_SPEC()
-                                    + "数量:" + mBarcodeDetailBean.getQTY()
-                                    + "lotno:" + mBarcodeDetailBean.getBI_LOTNO()
-                                    + "Datecode:" + mBarcodeDetailBean.getBI_DATECODE()
-//                                    + "PO:" + FastjsonUtil.getText(barcodeObject, "BI_ORDERCODE")
+                                    + "\n数量:" + mBarcodeDetailBean.getQTY()
+                                    + "\nlotno:" + mBarcodeDetailBean.getBI_LOTNO()
+                                    + "\nDatecode:" + mBarcodeDetailBean.getBI_DATECODE()
+//                                    + "\nPO:" + FastjsonUtil.getText(barcodeObject, "BI_ORDERCODE")
                                     ;
 
                             mCollectResultTextView.setText(barcodeResult);
                             mResultLl.setVisibility(View.VISIBLE);
+                            mResultTestBtn.setVisibility(View.VISIBLE);
 
                             mBarcodeTableLayout.setVisibility(View.GONE);
                             mBoxTableLayout.setVisibility(View.GONE);
@@ -797,12 +798,12 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                                 com.alibaba.fastjson.JSONObject nextObject = dataObject.getJSONObject("next");
                                 String materialInfo =
                                         "下一采集货品\n物料:" + FastjsonUtil.getText(nextObject, "PD_PRODCODE")
-                                                + "; \n数量:" + FastjsonUtil.getText(nextObject, "NEEDREADY")
-                                                + "; \n来料供应商:" + FastjsonUtil.getText(dataObject, "VENDCODE")
-                                                + "; \n序号:" + FastjsonUtil.getText(nextObject, "PD_PDNO")
-                                                + "; \n品牌:" + FastjsonUtil.getText(nextObject, "PD_BRAND")
-                                                + "; \n仓库:" + FastjsonUtil.getText(nextObject, "PD_WHCODE")
-                                                + "; \n库位:" + FastjsonUtil.getText(nextObject, "BI_LOCATION");
+                                                + "\n数量:" + FastjsonUtil.getText(nextObject, "NEEDREADY")
+                                                + "\n来料供应商:" + FastjsonUtil.getText(dataObject, "VENDCODE")
+                                                + "\n序号:" + FastjsonUtil.getText(nextObject, "PD_PDNO")
+                                                + "\n品牌:" + FastjsonUtil.getText(nextObject, "PD_BRAND")
+                                                + "\n仓库:" + FastjsonUtil.getText(nextObject, "PD_WHCODE")
+                                                + "\n库位:" + FastjsonUtil.getText(nextObject, "BI_LOCATION");
                                 mMaterialInforTextView.setText(materialInfo);
                             } else {
                                 mMaterialInforTextView.setText("该出库单已经完成备料");
@@ -820,8 +821,8 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                             CommonUtil.editTextGetFocus(etBarCode);
                             CommonUtil.toastNoRepeat(mActivity, failStr);
                             mResultLl.setVisibility(View.VISIBLE);
-                            mCollectResultTextView.setText(failStr);
                             mResultTestBtn.setVisibility(View.GONE);
+                            mCollectResultTextView.setText(failStr);
                             mBarcodeDetailBean = null;
                         }
                     }

+ 8 - 4
app/src/main/java/com/uas/keg_storage/fragment/WHRevokeStockFragment.java

@@ -226,7 +226,9 @@ public class WHRevokeStockFragment extends BaseFragment {
         mConfirmButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                getSonBarcode();
+                if (!CommonUtil.isRepeatClick()) {
+                    getSonBarcode();
+                }
             }
         });
 
@@ -236,7 +238,9 @@ public class WHRevokeStockFragment extends BaseFragment {
                 if (actionId == EditorInfo.IME_ACTION_SEND
                         || actionId == EditorInfo.IME_ACTION_SEARCH
                         || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
-                    getSonBarcode();
+                    if (!CommonUtil.isRepeatClick()) {
+                        getSonBarcode();
+                    }
                     return true;
                 }
                 return false;
@@ -340,8 +344,6 @@ public class WHRevokeStockFragment extends BaseFragment {
                             mSonBarcodeView.setVisibility(View.VISIBLE);
                             mMenuLayout.setVisibility(View.VISIBLE);
                             mBackResultLayout.setVisibility(View.GONE);
-                            if (progressDialog.isShowing())
-                                progressDialog.dismiss();
                             mBarcodeEditText.setText("");
                             mInSelectTextView.setText("0");
                             mInRevokeStockListBeans.clear();
@@ -409,6 +411,8 @@ public class WHRevokeStockFragment extends BaseFragment {
                             } else {
                                 CommonUtil.toastNoRepeat(mActivity, "条码信息获取失败");
                             }
+                            if (progressDialog.isShowing())
+                                progressDialog.dismiss();
                         } catch (Exception e) {
 
                         }

+ 15 - 0
app/src/main/java/com/uas/keg_storage/view/business/StorageOutTestPop.java

@@ -2,6 +2,7 @@ package com.uas.keg_storage.view.business;
 
 import android.content.Context;
 import android.text.TextUtils;
+import android.view.KeyEvent;
 import android.view.View;
 import android.view.animation.Animation;
 import android.widget.ImageView;
@@ -9,6 +10,7 @@ import android.widget.TextView;
 
 import com.uas.keg_storage.R;
 import com.uas.keg_storage.bean.BarcodeDetailBean;
+import com.uas.keg_storage.listener.MyEditorActionListener;
 import com.uas.keg_storage.util.CameraUtil;
 import com.uas.keg_storage.util.CommonUtil;
 import com.uas.keg_storage.view.ClearableEditText;
@@ -39,6 +41,19 @@ public class StorageOutTestPop extends BasePopupWindow implements View.OnClickLi
         mScanImageView.setOnClickListener(this);
         mCancelBtn.setOnClickListener(this);
         mConfirmBtn.setOnClickListener(this);
+        CommonUtil.setEditorActionListener(mBarcodeEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                if (mOnStorageTestListener != null) {
+                    String barcode = mBarcodeEditText.getText().toString().trim();
+                    if (TextUtils.isEmpty(barcode)) {
+                        CommonUtil.toastNoRepeat(mContext, "请采集条码");
+                        return;
+                    }
+                    mOnStorageTestListener.onTestRequest(barcode);
+                }
+            }
+        });
     }
 
     @Override