Explorar o código

增加了储位绑定 仓位项的扫码限制, 合并批次增加打印条码功能, 条码信息核查增加打印条码功能, 修改了字号的版本, 修复更新无法自动安装问题, 出库采集去除箱号相关功能,条码信息核查, 修改规格格式, 出库单改为仓库, 增加生产日期行, 调整打印机设置参数功能

songw hai 2 meses
pai
achega
d946348e4e
Modificáronse 30 ficheiros con 711 adicións e 386 borrados
  1. 1 0
      app/build.gradle
  2. 118 1
      app/proguard-rules.pro
  3. 1 2
      app/src/main/AndroidManifest.xml
  4. 1 1
      app/src/main/java/com/uas/aowei_wms/BluetoothService.java
  5. 3 0
      app/src/main/java/com/uas/aowei_wms/application/PdaApplication.java
  6. 17 0
      app/src/main/java/com/uas/aowei_wms/bluebooths/PrintHelper.java
  7. 1 1
      app/src/main/java/com/uas/aowei_wms/fragment/BarcodeGenerationFragment.java
  8. 16 1
      app/src/main/java/com/uas/aowei_wms/fragment/BarcodeInCollectFragment.java
  9. 1 1
      app/src/main/java/com/uas/aowei_wms/fragment/BarcodeSupplePrintFragment.java
  10. 46 177
      app/src/main/java/com/uas/aowei_wms/fragment/IOCOutMakeMaterialOper.java
  11. 6 0
      app/src/main/java/com/uas/aowei_wms/fragment/IndexWareHouseContentFragment.java
  12. 1 1
      app/src/main/java/com/uas/aowei_wms/fragment/MSDSplitFragment.java
  13. 4 4
      app/src/main/java/com/uas/aowei_wms/fragment/StorageInFragment.java
  14. 2 0
      app/src/main/java/com/uas/aowei_wms/fragment/VersionUpgradeFragment.java
  15. 7 4
      app/src/main/java/com/uas/aowei_wms/fragment/WHBreakingBatchFragment.java
  16. 128 14
      app/src/main/java/com/uas/aowei_wms/fragment/WHCheckBarcodeFragment.java
  17. 115 30
      app/src/main/java/com/uas/aowei_wms/fragment/WHCombineBatchFragment.java
  18. 10 5
      app/src/main/java/com/uas/aowei_wms/global/GloableParams.java
  19. 3 1
      app/src/main/java/com/uas/aowei_wms/util/CommonUtil.java
  20. 34 15
      app/src/main/java/com/uas/aowei_wms/util/PrintUtils.java
  21. 2 2
      app/src/main/java/com/uas/aowei_wms/util/VolleyRequest.java
  22. 1 0
      app/src/main/res/layout/fragment_barcode_in_collect.xml
  23. 1 0
      app/src/main/res/layout/fragment_iocout_make_material_oper.xml
  24. 164 119
      app/src/main/res/layout/fragment_whcheck_barcode.xml
  25. 0 1
      app/src/main/res/layout/fragment_whcombine_batch.xml
  26. 21 1
      app/src/main/res/layout/item_list_stock_already_list.xml
  27. 1 1
      app/src/main/res/layout/popupwindow_whcombine_bach.xml
  28. 2 2
      app/src/main/res/values/strings.xml
  29. 2 2
      build.gradle
  30. 2 0
      pda_libs/bluetooth/src/main/java/com/uas/bluetooth/PrintHelper.java

+ 1 - 0
app/build.gradle

@@ -66,6 +66,7 @@ dependencies {
     api project(':pulltoreflashlibrary')
     api project(':progresslitelibrary')
     api project(':lib-zxing')
+
     implementation deps.appcompatV7
     implementation deps.stetho
     implementation deps.fastjson

+ 118 - 1
app/proguard-rules.pro

@@ -169,6 +169,124 @@
 ##-keep .** {*;}
 
 
+## 对于一些基本指令的添加############################################### 代码混淆压缩比,在0~7之间,默认为5,一般不做修改
+-optimizationpasses 5
+# 混合时不使用大小写混合,混合后的类名为小写
+-dontusemixedcaseclassnames
+# 指定不去忽略非公共库的类
+-dontskipnonpubliclibraryclasses
+# 这句话能够使我们的项目混淆后产生映射文件# 包含有类名->混淆后类名的映射关系
+-verbose
+# 指定不去忽略非公共库的类成员
+-dontskipnonpubliclibraryclassmembers
+# 不做预校验,preverify是proguard的四个步骤之一,Android不需要preverify,去掉这一步能够加快混淆速度。
+-dontpreverify
+# 保留Annotation不混淆
+-keepattributes *Annotation*,InnerClasses
+# 避免混淆泛型
+-keepattributes Signature
+# 抛出异常时保留代码行号
+-keepattributes SourceFile,LineNumberTable
+# 指定混淆是采用的算法,后面的参数是一个过滤器
+# 这个过滤器是谷歌推荐的算法,一般不做更改
+-optimizations !code/simplification/cast,!field/*,!class/merging/*
+############################################### Android开发中一些需要保留的公共部分############################################### 保留我们使用的四大组件,自定义的Application等等这些类不被混淆# 因为这些子类都有可能被外部调用
+-keep public class * extends android.app.Activity
+-keep public class * extends android.app.Application
+-keep public class * extends android.app.Service
+-keep public class * extends android.content.BroadcastReceiver
+-keep public class * extends android.content.ContentProvider
+-keep public class * extends android.app.backup.BackupAgentHelper
+-keep public class * extends android.preference.Preference
+-keep public class * extends android.view.View
+
+# 保留support下的所有类及其内部类
+-dontwarn android.support.**
+-keep class android.support.** {*;}
+-dontwarn android.os.**
+-keep class android.os.** {*;}
+-dontwarn com.android.**
+-keep class com.android.** {*;}
+
+# 保留继承的
+-keep public class * extends android.support.v4.**
+-keep public class * extends android.support.v7.**
+-keep public class * extends android.support.annotation.**
+
+# 保留R下面的资源
+-keep class **.R$* {*;}
+
+# 保留本地native方法不被混淆
+-keepclasseswithmembernames class * {
+    native <methods>;
+}
+# 保留在Activity中的方法参数是view的方法,
+# 这样以来我们在layout中写的onClick就不会被影响
+-keepclassmembers class * extends android.app.Activity{
+    public void *(android.view.View);
+}
+# 保留枚举类不被混淆
+-keepclassmembers enum * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+# 保留我们自定义控件(继承自View)不被混淆
+-keep public class * extends android.view.View{
+    *** get*();
+    void set*(***);
+    public <init>(android.content.Context);
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+-keepclasseswithmembers class * {
+    public <init>(android.content.Context, android.util.AttributeSet);
+    public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+
+# 保留Parcelable序列化类不被混淆
+-keep class * implements android.os.Parcelable {
+    public static final android.os.Parcelable$Creator *;
+}
+# 保留Serializable序列化的类不被混淆
+-keepclassmembers class * implements java.io.Serializable {
+    static final long serialVersionUID;
+    private static final java.io.ObjectStreamField[] serialPersistentFields;
+    !static !transient <fields>;
+    !private <fields>;
+    !private <methods>;
+    private void writeObject(java.io.ObjectOutputStream);
+    private void readObject(java.io.ObjectInputStream);
+    java.lang.Object writeReplace();
+    java.lang.Object readResolve();
+}
+# 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
+-keepclassmembers class * {
+    void *(**On*Event);
+}
+
+##3.webview
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+#-keepclassmembers class * extends android.webkit.webViewClient {
+#    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
+#    public boolean *(android.webkit.WebView, java.lang.String);
+#}
+#-keepclassmembers class * extends android.webkit.webViewClient {
+#    public void *(android.webkit.webView, jav.lang.String);
+#}
+
+#移除Log类打印各个等级日志的代码,打正式包的时候可以做为禁log使用
+#这里可以作为禁止log打印的功能使用,另外的一种实现方案是通过BuildConfig.DEBUG的变量来控制
+#-assumenosideeffects class android.util.Log {
+#    public static *** v(...);
+#    public static *** i(...);
+#    public static *** d(...);
+#    public static *** w(...);
+#    public static *** e(...);
+#}
+
+
 
 #友盟混淆
 -keep class com.umeng.** {*;}
@@ -181,4 +299,3 @@
     public static **[] values();
     public static ** valueOf(java.lang.String);
 }
-

+ 1 - 2
app/src/main/AndroidManifest.xml

@@ -79,10 +79,9 @@
             android:label="@string/material_number_search"
             android:screenOrientation="portrait" />
 
-
         <provider
             android:name="android.support.v4.content.FileProvider"
-            android:authorities="com.uas.aowei_wms"
+            android:authorities="com.uas.aowei_wms.fileprovider"
             android:exported="false"
             android:grantUriPermissions="true">
             <meta-data

+ 1 - 1
app/src/main/java/com/uas/aowei_wms/BluetoothService.java

@@ -61,7 +61,7 @@ public class BluetoothService {
                         BluetoothDevice device = bondDevices.get(arg2);
                         Intent intent = new Intent();
                         intent.setClassName(context,
-                                "com.uas.yitao_newelectronic.PrintDataActivity");
+                                "com.uas.aowei_wms.PrintDataActivity");
                         intent.putExtra("deviceAddress", device.getAddress());
                         context.startActivity(intent);
                     }

+ 3 - 0
app/src/main/java/com/uas/aowei_wms/application/PdaApplication.java

@@ -55,6 +55,9 @@ public class PdaApplication extends Application {
         mInstance = this;
         mContext = getApplicationContext();
 
+        //打印机初始化
+        //PrinterHelper.init(this);
+
         CrashHandler crashHandler = CrashHandler.getInstance();
         crashHandler.init(mContext);
 

+ 17 - 0
app/src/main/java/com/uas/aowei_wms/bluebooths/PrintHelper.java

@@ -1,6 +1,8 @@
 package com.uas.aowei_wms.bluebooths;
 
 
+import com.uas.aowei_wms.util.MyLog;
+
 import HPRTAndroidSDKA300.HPRTPrinterHelper;
 
 /**
@@ -111,6 +113,8 @@ public class PrintHelper {
                     "" + x,
                     "" + y,
                     text.toString());
+
+            MyLog.e("aaa","文字打印:" + HPRTPrinterHelper.TEXT + " " + textFont + " " + textSize + " " + x + " " + y + " " + text.toString() + "\r\n" );
         }
 
 
@@ -190,6 +194,17 @@ public class PrintHelper {
                     "" + codeTextSize,
                     "" + offset,
                     text.toString());
+
+            //isReader = falsesh时
+            //var0 = var0 + " " + var1 + " " + var2 + " " + var3 + " " + var4 + " " + var5 + " " + var6 + " " + var11 + "\r\n";
+            ;
+            MyLog.e("aaa","条码打印数据:" + orientation + " " + barCodeType + " " + String.valueOf(width) + " " + String.valueOf(ratio) + " " + String.valueOf(height)
+                    + " " + String.valueOf(x) + " " + String.valueOf(y) + " " + text.toString() + "\r\n");
+
+
+            //var7 = true时
+            //var0 = "BARCODE-TEXT " + var8 + " " + var9 + " " + var10 + "\r\n" + var0 + "BARCODE-TEXT OFF\r\n";
+            MyLog.e("aaa","条码打印数据:" + "BARCODE-TEXT " + codeTextSize + " " + offset + " " + text.toString() + "\r\n" + orientation + "BARCODE-TEXT OFF\r\n");
         }
 
 
@@ -230,6 +245,8 @@ public class PrintHelper {
                     model + "",
                     textSize + "",
                     text.toString());
+
+            MyLog.e("aaa","二维码打印:" + orientation + " QR " + String.valueOf(x) + " " + String.valueOf(y) + " M " + model + " U " + textSize + "\r\nMA," +  text.toString() + "\r\nENDQR\r\n");
         }
     }
 

+ 1 - 1
app/src/main/java/com/uas/aowei_wms/fragment/BarcodeGenerationFragment.java

@@ -357,7 +357,7 @@ public class BarcodeGenerationFragment extends BaseFragment implements View.OnCl
                                             Intent intent = new Intent(Intent.ACTION_VIEW);
                                             File assetsFileToCacheDir = FileUtils.getAssetsFileToCacheDir(mActivity, "PrinterShare.apk");
                                             if (Build.VERSION.SDK_INT >= 24) {
-                                                Uri apkUri = FileProvider.getUriForFile(mActivity, "com.uas.yitao_newelectronic", assetsFileToCacheDir);
+                                                Uri apkUri = FileProvider.getUriForFile(mActivity, getActivity().getPackageName() +".fileprovider", assetsFileToCacheDir);
                                                 //Granting Temporary Permissions to a URI
                                                 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                                                 intent.setDataAndType(apkUri, "application/vnd.android.package-archive");

+ 16 - 1
app/src/main/java/com/uas/aowei_wms/fragment/BarcodeInCollectFragment.java

@@ -1,6 +1,8 @@
 package com.uas.aowei_wms.fragment;
 
 import android.content.Intent;
+import android.text.InputFilter;
+import android.text.Spanned;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.View;
@@ -83,6 +85,7 @@ public class BarcodeInCollectFragment extends BaseFragment {
             }
         });
 
+
         CommonUtil.setEditorActionListener(mLocationEditText, new MyEditorActionListener() {
             @Override
             public void MyEditorAction(String text, int actionId, KeyEvent event) {
@@ -92,6 +95,18 @@ public class BarcodeInCollectFragment extends BaseFragment {
             }
         });
 
+        mLocationEditText.setFilters(new InputFilter[] { new InputFilter() {
+            @Override
+            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
+                for (int i = start; i < end; i++) {
+                    if (source.charAt(i) == '\n') {
+                        return ""; // 返回空字符串,不接受换行符
+                    }
+                }
+                return null; // 返回null表示不修改原文本
+            }
+        }});
+
         mScanImageView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
@@ -198,7 +213,7 @@ public class BarcodeInCollectFragment extends BaseFragment {
                                         }
                                     }
                                 } catch (Exception e) {
-
+                                    e.printStackTrace();
                                 }
                             }
 

+ 1 - 1
app/src/main/java/com/uas/aowei_wms/fragment/BarcodeSupplePrintFragment.java

@@ -213,7 +213,7 @@ public class BarcodeSupplePrintFragment extends BaseFragment {
                                             Intent intent = new Intent(Intent.ACTION_VIEW);
                                             File assetsFileToCacheDir = FileUtils.getAssetsFileToCacheDir(mActivity, "PrinterShare.apk");
                                             if (Build.VERSION.SDK_INT >= 24) {
-                                                Uri apkUri = FileProvider.getUriForFile(mActivity, "com.uas.yitao_newelectronic", assetsFileToCacheDir);
+                                                Uri apkUri = FileProvider.getUriForFile(mActivity, getActivity().getPackageName() +".fileprovider", assetsFileToCacheDir);
                                                 //Granting Temporary Permissions to a URI
                                                 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                                                 intent.setDataAndType(apkUri, "application/vnd.android.package-archive");

+ 46 - 177
app/src/main/java/com/uas/aowei_wms/fragment/IOCOutMakeMaterialOper.java

@@ -279,51 +279,6 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                                 mCollectBarProdcodeTv.setText(mResult3);
 
                                 PdaApplication.putDataCache2Map(Constants.FLAG.MATERIAL_COLLECT_BARCODE_RESULT + pi_inoutno, mResults);
-                            } else if (false) {
-                                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")
-                                        + "  " + JsonUtils.optStringNotNull(messageObject, "PR_SPEC");
-
-
-                                if (listArray != null && listArray.length() > 0) {
-                                    for (int i = 0; i < listArray.length(); i++) {
-                                        JSONObject listObject = listArray.optJSONObject(i);
-                                        boxResult = boxResult
-                                                + "\n单号:" + JsonUtils.optStringNotNull(listObject, "PI_INOUTNO")
-                                                + ";条码号:" + JsonUtils.optStringNotNull(listObject, "BAR_CODE")
-                                                + ";数量:" + CommonUtil.doubleFormat(JsonUtils.optDoubleNotNull(listObject, "BAR_REMAIN"));
-                                    }
-                                }
-
-                                mCollectResultTextView.setText(boxResult);
-                                mCollectResultTextView.setTextColor(getResources().getColor(R.color.green));
-
-                                mBarcodeTableLayout.setVisibility(View.GONE);
-                                mBoxTableLayout.setVisibility(View.GONE);
-
-                                tvBoxCollectionSuccess.setVisibility(View.VISIBLE);
-                                tvBoxCollectionSuccess.setText("采集成功");
-
-                                mResult1 = messageObject.optString("PA_OUTBOXCODE");
-                                mResult2 = messageObject.optInt("PA_TOTALQTY") + "";
-                                mResult3 = messageObject.optString("PA_PRODCODE");
-                                mResult4 = messageObject.optString("PA_WHCODE");
-
-                                mResults.add(mResult1);
-                                mResults.add(mResult2);
-                                mResults.add(mResult3);
-                                mResults.add(mResult4);
-
-                                mCollectBoxTv.setText(mResult1);
-                                mCollectBoxNumTv.setText(mResult2);
-                                mCollectBoxrProdcodeTv.setText(mResult3);
-                                mCollectBoxWhcodeTv.setText(mResult4);
-
-                                PdaApplication.putDataCache2Map(Constants.FLAG.MATERIAL_COLLECT_BOX_RESULT + pi_inoutno, mResults);
                             }
                             CommonUtil.toastNoRepeat(getActivity(), "采集成功");
 
@@ -507,7 +462,8 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
 
         mBarcodeTableLayout.setVisibility(View.GONE);
         mBoxTableLayout.setVisibility(View.GONE);
-        mCollectType = SharedPreUtil.getString(getActivity().getApplicationContext(), Constants.FLAG.MATERIAL_OUT_COLLECT_TYPE, "byBarcode");
+        //mCollectType = SharedPreUtil.getString(getActivity().getApplicationContext(), Constants.FLAG.MATERIAL_OUT_COLLECT_TYPE, "byBarcode");
+        mCollectType = "byBarcode";     //这样可以去掉箱号
 
         if (mCollectType != null) {
             //取消箱号采集
@@ -517,9 +473,9 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                 etBarCode.setHint(R.string.please_collect_barcode);
                 mtypeNameTv.setText("条码");
             } else if (mCollectType.equals("byBatchcode")) {
-                CommonUtil.setSpinnerItemSelectedByValue(mTypeSpinner, "箱号");
-                etBarCode.setHint("请采集箱号");
-                mtypeNameTv.setText("箱号");
+//                CommonUtil.setSpinnerItemSelectedByValue(mTypeSpinner, "箱号");
+//                etBarCode.setHint("请采集箱号");
+//                mtypeNameTv.setText("箱号");
             }
         }
         btnActionbarRight = (Button) getActivity().findViewById(R.id.btn_actionbar_more);
@@ -558,35 +514,35 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
             }
         });
 
-        mtypeNameTv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                String typeName = mtypeNameTv.getText().toString().trim();
-                if ("条码".equals(typeName)) {
-                    changeToTypeBatch();
-                } else if ("箱号".equals(typeName)) {
-                    changeToTypeBarcode();
-                }
-            }
-        });
-
-        mTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
-            @Override
-            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-                if (mCollectTypes != null) {
-                    if (mCollectTypes.get(position).equals("条码号")) {
-                        changeToTypeBarcode();
-                    } else if (mCollectTypes.get(position).equals("外箱号")) {
-                        changeToTypeBatch();
-                    }
-                }
-            }
-
-            @Override
-            public void onNothingSelected(AdapterView<?> parent) {
-
-            }
-        });
+//        mtypeNameTv.setOnClickListener(new View.OnClickListener() {
+//            @Override
+//            public void onClick(View v) {
+//                String typeName = mtypeNameTv.getText().toString().trim();
+//                if ("条码".equals(typeName)) {
+//                    changeToTypeBatch();
+//                } else if ("箱号".equals(typeName)) {
+//                    changeToTypeBarcode();
+//                }
+//            }
+//        });
+
+//        mTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+//            @Override
+//            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+//                if (mCollectTypes != null) {
+//                    if (mCollectTypes.get(position).equals("条码号")) {
+//                        changeToTypeBarcode();
+//                    } else if (mCollectTypes.get(position).equals("外箱号")) {
+//                        changeToTypeBatch();
+//                    }
+//                }
+//            }
+//
+//            @Override
+//            public void onNothingSelected(AdapterView<?> parent) {
+//
+//            }
+//        });
 
         btn_startoutku.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -897,13 +853,18 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
         progressDialog.show();
         boolean checkeds = special_check.isChecked();
 //        currentBarcode = etBarCode.getText().toString().trim();
-        String url = (isMultiple ? GloableParams.ADDRESS_OUT_BYBATCH_DEAL : GloableParams.ADDRESS_OUT_BYBATCH_DEAL)
-                + "?barcode=" + currentBarcode
-                + (isMultiple ? "&ids=" : "&ids=")
-                + pi_id + "&whcode=" + pd_whcode
-                + "&type=barcode&msdcheck=" + msdcheck
-                + "&datecheck=" + datecheck
-                +"&ifspecial="+checkeds;
+        String url = "";
+        try {
+             url = GloableParams.ADDRESS_OUT_BYBATCH_DEAL
+                    + "?barcode=" + URLEncoder.encode(currentBarcode, "utf-8")
+                    + (isMultiple ? "&ids=" : "&ids=")
+                    + pi_id + "&whcode=" + pd_whcode
+                    + "&type=barcode&msdcheck=" + msdcheck
+                    + "&datecheck=" + datecheck
+                    +"&ifspecial="+checkeds;
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
         try {
             if (mProdOutType != null && mCollectType != null) {
                 if (mProdOutType.equals("byProdcode")) {
@@ -1053,52 +1014,6 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                             mCollectBarProdcodeTv.setText(mResult3);
 
                             PdaApplication.putDataCache2Map(Constants.FLAG.MATERIAL_COLLECT_BARCODE_RESULT + pi_inoutno, mResults);
-                        } else if (false) {
-                            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")
-                                    + " " + JsonUtils.optStringNotNull(messageObject, "PR_SPEC");
-
-
-//                            if (listArray != null && listArray.length() > 0) {
-//                                for (int i = 0; i < listArray.length(); i++) {
-//                                    JSONObject listObject = listArray.optJSONObject(i);
-//                                    boxResult = boxResult
-//                                            + "\n单号:" + JsonUtils.optStringNotNull(listObject, "PI_INOUTNO")
-//                                            + ";条码号:" + JsonUtils.optStringNotNull(listObject, "BAR_CODE")
-//                                            + ";数量:" + CommonUtil.doubleFormat(JsonUtils.optDoubleNotNull(listObject, "BAR_REMAIN"));
-//                                }
-//                            }
-
-                            mCollectResultTextView.setText(boxResult);
-                            mCollectResultTextView.setTextColor(getResources().getColor(R.color.green));
-
-
-                            mBarcodeTableLayout.setVisibility(View.GONE);
-                            mBoxTableLayout.setVisibility(View.GONE);
-
-                            tvBoxCollectionSuccess.setVisibility(View.VISIBLE);
-                            tvBoxCollectionSuccess.setText("采集成功");
-
-                            mResult1 = messageObject.optString("PA_OUTBOXCODE");
-                            mResult2 = messageObject.optInt("PA_TOTALQTY") + "";
-                            mResult3 = messageObject.optString("PA_PRODCODE");
-                            mResult4 = messageObject.optString("PA_WHCODE");
-
-                            mResults.add(mResult1);
-                            mResults.add(mResult2);
-                            mResults.add(mResult3);
-                            mResults.add(mResult4);
-
-                            mCollectBoxTv.setText(mResult1);
-                            mCollectBoxNumTv.setText(mResult2);
-                            mCollectBoxrProdcodeTv.setText(mResult3);
-                            mCollectBoxWhcodeTv.setText(mResult4);
-
-                            PdaApplication.putDataCache2Map(Constants.FLAG.MATERIAL_COLLECT_BOX_RESULT + pi_inoutno, mResults);
                         }
                         CommonUtil.toastNoRepeat(getActivity(), "采集成功");
 
@@ -1828,52 +1743,6 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                             mCollectBarProdcodeTv.setText(mResult3);
 
                             PdaApplication.putDataCache2Map(Constants.FLAG.MATERIAL_COLLECT_BARCODE_RESULT + pi_inoutno, mResults);
-                        } else if (false) {
-                            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")
-                                    + "  " + JsonUtils.optStringNotNull(messageObject, "PR_SPEC");
-
-
-                            if (listArray != null && listArray.length() > 0) {
-                                for (int i = 0; i < listArray.length(); i++) {
-                                    JSONObject listObject = listArray.optJSONObject(i);
-                                    boxResult = boxResult
-                                            + "\n单号:" + JsonUtils.optStringNotNull(listObject, "PI_INOUTNO")
-                                            + ";条码号:" + JsonUtils.optStringNotNull(listObject, "BAR_CODE")
-                                            + ";数量:" + CommonUtil.doubleFormat(JsonUtils.optDoubleNotNull(listObject, "BAR_REMAIN"));
-                                }
-                            }
-
-                            mCollectResultTextView.setText(boxResult);
-                            mCollectResultTextView.setTextColor(getResources().getColor(R.color.green));
-
-
-                            mBarcodeTableLayout.setVisibility(View.GONE);
-                            mBoxTableLayout.setVisibility(View.GONE);
-
-                            tvBoxCollectionSuccess.setVisibility(View.VISIBLE);
-                            tvBoxCollectionSuccess.setText("采集成功");
-
-                            mResult1 = messageObject.optString("PA_OUTBOXCODE");
-                            mResult2 = messageObject.optInt("PA_TOTALQTY") + "";
-                            mResult3 = messageObject.optString("PA_PRODCODE");
-                            mResult4 = messageObject.optString("PA_WHCODE");
-
-                            mResults.add(mResult1);
-                            mResults.add(mResult2);
-                            mResults.add(mResult3);
-                            mResults.add(mResult4);
-
-                            mCollectBoxTv.setText(mResult1);
-                            mCollectBoxNumTv.setText(mResult2);
-                            mCollectBoxrProdcodeTv.setText(mResult3);
-                            mCollectBoxWhcodeTv.setText(mResult4);
-
-                            PdaApplication.putDataCache2Map(Constants.FLAG.MATERIAL_COLLECT_BOX_RESULT + pi_inoutno, mResults);
                         }
                         CommonUtil.toastNoRepeat(getActivity(), "采集成功");
 

+ 6 - 0
app/src/main/java/com/uas/aowei_wms/fragment/IndexWareHouseContentFragment.java

@@ -73,6 +73,7 @@ public class IndexWareHouseContentFragment extends BaseFragment implements Adapt
         String gridName = (String) gridItemList.get(position).get(DataSourceManager.KEY_GRID_ITEMNAME);
         Fragment fragment;
         mFragment = null;
+//        isShop = false;
         if (isShop) {//车间
             //条码数量修改
             if (GloableParams.GRIDNAME_MODIFY_QUANTITY.equals(gridName)) {
@@ -186,6 +187,11 @@ public class IndexWareHouseContentFragment extends BaseFragment implements Adapt
                     getFragmentManager().beginTransaction().addToBackStack(null)
                             .replace(R.id.container_function_fragment, fragment).commit();
                     break;
+                case GloableParams.MENU_STORAGE_BARCODE_IN_CODE:         //储位绑定
+                    fragment = new BarcodeInCollectFragment();
+                    getFragmentManager().beginTransaction().addToBackStack(null)
+                            .replace(R.id.container_function_fragment, fragment).commit();
+                    break;
 
             }
             if (mFragment != null) {

+ 1 - 1
app/src/main/java/com/uas/aowei_wms/fragment/MSDSplitFragment.java

@@ -293,7 +293,7 @@ public class MSDSplitFragment extends BaseFragment implements View.OnClickListen
                                     Intent intent = new Intent(Intent.ACTION_VIEW);
                                     File assetsFileToCacheDir = FileUtils.getAssetsFileToCacheDir(getActivity(), "PrinterShare.apk");
                                     if (Build.VERSION.SDK_INT >= 24) {
-                                        Uri apkUri = FileProvider.getUriForFile(mActivity, "com.uas.yitao_newelectronic", assetsFileToCacheDir);
+                                        Uri apkUri = FileProvider.getUriForFile(mActivity, getActivity().getPackageName() +".fileprovider", assetsFileToCacheDir);
                                         //Granting Temporary Permissions to a URI
                                         intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                                         intent.setDataAndType(apkUri, "application/vnd.android.package-archive");

+ 4 - 4
app/src/main/java/com/uas/aowei_wms/fragment/StorageInFragment.java

@@ -99,10 +99,10 @@ public class StorageInFragment extends BaseFragment implements View.OnClickListe
 //                        //条码信息采集
 //                        mFragment = new BarcodeInfoCollectFragment();
 //                        break;
-                    case GloableParams.MENU_STORAGE_BARCODE_IN_CODE:
-                        //储位绑定
-                        mFragment = new BarcodeInCollectFragment();
-                        break;
+//                    case GloableParams.MENU_STORAGE_BARCODE_IN_CODE:
+//                        //储位绑定
+//                        mFragment = new BarcodeInCollectFragment();
+//                        break;
                     default:
                         break;
                 }

+ 2 - 0
app/src/main/java/com/uas/aowei_wms/fragment/VersionUpgradeFragment.java

@@ -30,6 +30,7 @@ import com.uas.aowei_wms.util.FastjsonUtil;
 import com.uas.aowei_wms.util.FileUtils;
 import com.uas.aowei_wms.util.HttpCallback;
 import com.uas.aowei_wms.util.HttpParams;
+import com.uas.aowei_wms.util.MyLog;
 import com.uas.aowei_wms.util.VolleyRequest;
 import com.uas.aowei_wms.util.download.ProgressDownloader;
 import com.uas.aowei_wms.util.download.ProgressResponseBody;
@@ -81,6 +82,7 @@ public class VersionUpgradeFragment extends BaseFragment implements ProgressResp
 
                 breakPoints = 0L;
                 String downloadUrl = GloableParams.ADDRESS_COMMON_DOWNLOADBYID + "?id=" + mAttachId;
+                MyLog.e("aaa","下载的地址是:" + downloadUrl);
                 mDownloader = new ProgressDownloader(downloadUrl, apkFile, VersionUpgradeFragment.this);
                 mDownloader.download(0L);
             }

+ 7 - 4
app/src/main/java/com/uas/aowei_wms/fragment/WHBreakingBatchFragment.java

@@ -13,7 +13,6 @@ import android.os.Message;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.util.Log;
 import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -55,6 +54,7 @@ import com.uas.aowei_wms.util.FragmentUtils;
 import com.uas.aowei_wms.util.JsonTools;
 import com.uas.aowei_wms.util.JsonUtils;
 import com.uas.aowei_wms.util.LogUtil;
+import com.uas.aowei_wms.util.MyLog;
 import com.uas.aowei_wms.util.PrintUtils;
 import com.uas.aowei_wms.view.ClearableEditText;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
@@ -428,7 +428,6 @@ public class WHBreakingBatchFragment extends BaseFragment implements View.OnClic
         CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
     }
 
-
     private void printEvent(JSONArray printArray) {
         if (printArray != null && printArray.size() > 0) {
             boolean isFail = false;
@@ -520,7 +519,7 @@ public class WHBreakingBatchFragment extends BaseFragment implements View.OnClic
                                     Intent intent = new Intent(Intent.ACTION_VIEW);
                                     File assetsFileToCacheDir = FileUtils.getAssetsFileToCacheDir(getActivity(), "PrinterShare.apk");
                                     if (Build.VERSION.SDK_INT >= 24) {
-                                        Uri apkUri = FileProvider.getUriForFile(mActivity, "com.uas.yitao_newelectronic", assetsFileToCacheDir);
+                                        Uri apkUri = FileProvider.getUriForFile(mActivity, getActivity().getPackageName() +".fileprovider", assetsFileToCacheDir);
                                         //Granting Temporary Permissions to a URI
                                         intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                                         intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
@@ -671,7 +670,6 @@ public class WHBreakingBatchFragment extends BaseFragment implements View.OnClic
         messages.clear();
         progressDialog.show();
         String url = GloableParams.ADDRESS_BREAKINGBTNCLICKEVENT;
-        Log.d("breakDeal", url);
 
         RequestBody requestBody = new FormBody.Builder()
                 .add("or_barcode", etOrBarcode.getText().toString().trim())
@@ -679,6 +677,11 @@ public class WHBreakingBatchFragment extends BaseFragment implements View.OnClic
                 .add("bar_remain", etBarRemain.getText().toString().trim())
                 .build();
 
+        MyLog.e("aaa", "接口地址" + url + "/n" + "参数:or_barcode:" + etOrBarcode.getText().toString().trim()
+                + "/n" + "参数:or_remain:" + tvOrRemain.getText().toString().trim()
+                + "/n" + "参数:bar_remain:" +  etBarRemain.getText().toString().trim()
+        );
+
         okhttp3.Request.Builder builder = new okhttp3.Request.Builder().url(url).post(requestBody);
 
         Map<String, String> cookiesMap = VolleyUtil.getVolleyUtil().setCookies();

+ 128 - 14
app/src/main/java/com/uas/aowei_wms/fragment/WHCheckBarcodeFragment.java

@@ -4,21 +4,31 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.os.AsyncTask;
+import android.os.Bundle;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageView;
 import android.widget.TableLayout;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.uas.aowei_wms.R;
 import com.uas.aowei_wms.activity.FunctionActivity;
 import com.uas.aowei_wms.global.GloableParams;
+import com.uas.aowei_wms.tools.SharedPreUtil;
 import com.uas.aowei_wms.tools.VolleyUtil;
 import com.uas.aowei_wms.util.CameraUtil;
 import com.uas.aowei_wms.util.CommonUtil;
+import com.uas.aowei_wms.util.Constants;
+import com.uas.aowei_wms.util.FragmentUtils;
+import com.uas.aowei_wms.util.MyLog;
+import com.uas.aowei_wms.util.PrintUtils;
 import com.uas.aowei_wms.view.ClearableEditText;
 import com.uas.aowei_wms.view.ConfirmDialog;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
@@ -27,6 +37,9 @@ import com.uuzuche.lib_zxing.activity.CodeUtils;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @note:条码信息核查页面
  */
@@ -34,11 +47,18 @@ public class WHCheckBarcodeFragment extends BaseFragment implements View.OnClick
     private static final int SCAN_BARCODE_CODE = 402;
     ClearableEditText etCollect;
     TableLayout tlMsg;
-    TextView tvBarcode, tvBarProcode,tv_type_value,tvPrDetail, tvPrSpec, tvVeShortname,
-            tvBarWhcode, tvBarRemain, tvBarLocation, tvStatus;
+    TextView tvBarcode, tvBarProcode, tv_type_value, tvPrDetail, tvPrSpec, tvVeShortname,
+            tvBarWhcode, tvBarRemain, tvBarLocation, tvStatus, tv_production_date;
     private TextView btnSearch;
     private ImageView mScanImageView;
     private int mFocusId;
+    private Button bt_print;
+
+    private com.alibaba.fastjson.JSONArray listArray;
+    private boolean isConnected = false;
+    private String mOldAddress = "";
+    private int mPrintDpi = 203;
+    private boolean isPrinting = false;
 
     @Override
     protected int getLayout() {
@@ -52,7 +72,7 @@ public class WHCheckBarcodeFragment extends BaseFragment implements View.OnClick
         tlMsg = (TableLayout) root.findViewById(R.id.tl_msg);
         tvBarcode = (TextView) root.findViewById(R.id.tv_bar_code);
         tvBarProcode = (TextView) root.findViewById(R.id.tv_bar_procode);
-        tv_type_value=root.findViewById(R.id.tv_type_value);
+        tv_type_value = root.findViewById(R.id.tv_type_value);
         tvPrDetail = (TextView) root.findViewById(R.id.tv_pr_detail);
         tvPrSpec = (TextView) root.findViewById(R.id.tv_pr_spec);
         tvVeShortname = (TextView) root.findViewById(R.id.tv_pr_ve_shortname);
@@ -60,10 +80,15 @@ public class WHCheckBarcodeFragment extends BaseFragment implements View.OnClick
         tvBarRemain = (TextView) root.findViewById(R.id.tv_bar_remain);
         tvBarLocation = (TextView) root.findViewById(R.id.tv_bar_location);
         tvStatus = root.findViewById(R.id.tv_bar_status);
+        tv_production_date = (TextView) mActivity.findViewById(R.id.tv_production_date);
         btnSearch = (TextView) root.findViewById(R.id.btn_collect);
+        bt_print = root.findViewById(R.id.bt_print);
         ((TextView) (getActivity().findViewById(R.id.tv_actionbar_withback))).setText(R.string.title_barcode_whmm);
         mScanImageView = (ImageView) mActivity.findViewById(R.id.btn_actionbar_scan_iv);
 
+        isConnected = (SharedPreUtil.getInt(mActivity, "printConnect", 0) == 1);
+        mOldAddress = SharedPreUtil.getString(mActivity, "printAddress", "");
+        mPrintDpi = SharedPreUtil.getInt(mActivity, "printDpi", 203);
     }
 
     @Override
@@ -99,8 +124,63 @@ public class WHCheckBarcodeFragment extends BaseFragment implements View.OnClick
                 }
             }
         });
+
+        bt_print.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (listArray != null && listArray.size() > 0) {
+                    printEvent(listArray);
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, "数据为空");
+                }
+
+            }
+        });
     }
 
+    private void printEvent(com.alibaba.fastjson.JSONArray printArray) {
+        MyLog.e("aaa","打印的数组是:" + printArray.get(0));
+        if (isPrinting) {
+            CommonUtil.toastNoRepeat(mActivity, "正在打印中,请勿重复操作");
+            return;
+        }
+        isPrinting = true;
+        if (printArray != null && printArray.size() > 0) {
+            boolean isFail = false;
+            for (int i = 0; i < printArray.size(); i++) {
+                try {
+                    com.alibaba.fastjson.JSONObject printObject = printArray.getJSONObject(i);
+                    int printResult = PrintUtils.printBar(mActivity, printObject.toString(), mPrintDpi, null);
+                    if (printResult <= 0) {
+                        isFail = true;
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+            //closeSplitPopupWindow();
+            //progressDialog.dismiss();
+            if (isFail) {
+                isConnected = false;
+                SharedPreUtil.saveInt(mActivity, "printConnect", 0);
+                CommonUtil.toastNoRepeat(mActivity, "打印失败,请重新连接打印机");
+
+                BlueToothPrintFragment blueToothPrintFragment = new BlueToothPrintFragment();
+
+                Bundle bundle = new Bundle();
+                bundle.putString(Constants.KEY.BARCODE_PRINT_ARRAY, printArray.toString());
+                blueToothPrintFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(WHCheckBarcodeFragment.this, blueToothPrintFragment);
+            } else {
+                CommonUtil.toastNoRepeat(mActivity, "打印成功");
+            }
+        } else {
+            CommonUtil.toastNoRepeat(mActivity, "打印失败,条码数据为空");
+        }
+        isPrinting = false;
+    }
+
+
     @Override
     protected void initDatas() {
         etCollect.setHint(R.string.hint_whcheck_bar_code);
@@ -185,31 +265,65 @@ public class WHCheckBarcodeFragment extends BaseFragment implements View.OnClick
             String strBarcode = changeNulltoBlank(dataJson, "BAR_CODE");
             String strProduct = changeNulltoBlank(dataJson, "BAR_PRODCODE");
             String strDetail = changeNulltoBlank(dataJson, "PR_DETAIL");
-            String strSpec = changeNulltoBlank(dataJson, "PR_SPEC");
+            String strSpec = changeNulltoBlank(dataJson, "PR_SPEC");    //规格
             String strShortname = changeNulltoBlank(dataJson, "VE_SHORTNAME");
             String strWhcode = changeNulltoBlank(dataJson, "BAR_WHCODE");
             String strRemain = changeNulltoBlank(dataJson, "BAR_REMAIN");
             String strLocation = changeNulltoBlank(dataJson, "BAR_LOCATION");
-            String strStatus = changeNulltoBlank(dataJson, "BAR_STATUS");
-            String strType=changeNulltoBlank(dataJson,"PR_ORISPECCODE");
+            String strStatus = changeNulltoBlank(dataJson, "BAR_STATUS");       //条码状态
+            String strType = changeNulltoBlank(dataJson, "PR_ORISPECCODE");
+            String barMadedate = changeNulltoBlank(dataJson, "BAR_MADEDATE");
 
             //显示数据
             tvBarcode.setText(strBarcode);
             tvBarProcode.setText(strProduct);
             tv_type_value.setText(strType);
             tvPrDetail.setText(strDetail);
-            tvPrSpec.setText(strSpec);
+
+            String PR_SPEC = "";
+            if (!TextUtils.isEmpty(strSpec)) {
+                String[] split = strSpec.split(",");
+                for (int i = 0; i < split.length; i++) {
+                    if (i == split.length -1) {
+                        PR_SPEC += split[i];
+                    }else {
+                        PR_SPEC += split[i] + "\n";
+                    }
+                }
+            }
+
+            tvPrSpec.setText(PR_SPEC);      //规格
             tvVeShortname.setText(strShortname);
             tvBarWhcode.setText(strWhcode);
             tvBarRemain.setText(strRemain);
             tvBarLocation.setText(strLocation);
-            if(strStatus.equals("1")){
+            if (strStatus.equals("1")) {
                 tvStatus.setText("在库");
-            }else if(strStatus.equals("2")){
+            } else if (strStatus.equals("2")) {
                 tvStatus.setText("出库");
-            }else{
-               tvStatus.setText(strStatus);
+            } else {
+                tvStatus.setText(strStatus);
+            }
+            tv_production_date.setText(barMadedate);
+
+            bt_print.setEnabled(true);
+            bt_print.setTextColor(getResources().getColor(R.color.black));
+
+            //新增数据
+            com.alibaba.fastjson.JSONObject resultObject = JSON.parseObject(result);
+            com.alibaba.fastjson.JSONObject jb = resultObject.getJSONObject("data");
+
+            List<Object> list = new ArrayList<>();;
+            list.add(jb);
+            JSONArray jsonArray = new JSONArray(list);
+
+            for (int i = 0; i < jsonArray.size(); i++) {
+                Object o = jsonArray.get(0);
+                jsonArray.getJSONObject(0);
             }
+
+            //listArray = FastjsonUtil.getJSONArray(dataJson.toString(), "nolist");
+            listArray = jsonArray;
         } catch (JSONException e) {
             e.printStackTrace();
         }
@@ -239,7 +353,7 @@ public class WHCheckBarcodeFragment extends BaseFragment implements View.OnClick
             @Override
             protected Float doInBackground(String... params) {
                 try {
-                    Thread.sleep(1000);
+                    Thread.sleep(3000);
                 } catch (InterruptedException e) {
                     e.printStackTrace();
                 }
@@ -309,8 +423,8 @@ public class WHCheckBarcodeFragment extends BaseFragment implements View.OnClick
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
             if (progressDialog != null && progressDialog.isShowing()) {
-//                loadingView.dismiss();
-//                VolleyUtil.distoryVolley();
+                //                loadingView.dismiss();
+                //                VolleyUtil.distoryVolley();
                 return true;
             }
         }

+ 115 - 30
app/src/main/java/com/uas/aowei_wms/fragment/WHCombineBatchFragment.java

@@ -3,14 +3,12 @@ package com.uas.aowei_wms.fragment;
 import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.drawable.BitmapDrawable;
 import android.net.Uri;
-import android.os.Build;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.support.v4.content.FileProvider;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Gravity;
@@ -30,6 +28,8 @@ import android.widget.PopupWindow;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.android.volley.AuthFailureError;
 import com.android.volley.Request;
 import com.android.volley.RequestQueue;
@@ -43,13 +43,17 @@ import com.uas.aowei_wms.activity.FunctionActivity;
 import com.uas.aowei_wms.bean.WHBreakingBatchGetBarcodeData;
 import com.uas.aowei_wms.bean.WHCombineBatchFragmentCombineBtnClickEvent;
 import com.uas.aowei_wms.global.GloableParams;
+import com.uas.aowei_wms.tools.SharedPreUtil;
 import com.uas.aowei_wms.tools.VolleyUtil;
 import com.uas.aowei_wms.util.CameraUtil;
 import com.uas.aowei_wms.util.CommonUtil;
 import com.uas.aowei_wms.util.Constants;
 import com.uas.aowei_wms.util.FileUtils;
+import com.uas.aowei_wms.util.FragmentUtils;
 import com.uas.aowei_wms.util.JsonTools;
 import com.uas.aowei_wms.util.LogUtil;
+import com.uas.aowei_wms.util.MyLog;
+import com.uas.aowei_wms.util.PrintUtils;
 import com.uas.aowei_wms.view.ClearableEditText;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
 import com.uuzuche.lib_zxing.activity.CodeUtils;
@@ -88,6 +92,13 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
     private int lastPress = 0;
     private boolean delState = false;
     private String mPrintUrl = "";
+
+    private com.alibaba.fastjson.JSONArray listArray;
+    private boolean isConnected = false;
+    private String mOldAddress = "";
+    private int mPrintDpi = 203;
+    private boolean isPrinting = false;
+
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -149,6 +160,10 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
         myAdapter = new MyAdapter(getActivity(), R.layout.item_list_whcombatchfragment, dataList);
         listView.setAdapter(myAdapter);
         btnMerge = (Button) root.findViewById(R.id.btn_merge);
+
+        isConnected = (SharedPreUtil.getInt(mActivity, "printConnect", 0) == 1);
+        mOldAddress = SharedPreUtil.getString(mActivity, "printAddress", "");
+        mPrintDpi = SharedPreUtil.getInt(mActivity, "printDpi", 203);
     }
 
     @Override
@@ -338,30 +353,43 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
 
                 break;
             case R.id.btn_print:
-                if (!CommonUtil.appIsInstalled(getActivity(), Constants.CONSTANT.PRINT_SHARE_PACKAGE)) {
-                    new android.app.AlertDialog.Builder(getActivity()).setTitle("提示")
-                            .setMessage("您还未安装打印程序,点击确认开始安装")
-                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
-                                @Override
-                                public void onClick(DialogInterface dialog, int which) {
-                                    Intent intent = new Intent(Intent.ACTION_VIEW);
-                                    File assetsFileToCacheDir = FileUtils.getAssetsFileToCacheDir(getActivity(), "PrinterShare.apk");
-                                    if (Build.VERSION.SDK_INT >= 24) {
-                                        Uri apkUri = FileProvider.getUriForFile(mActivity, "com.uas.yitao_newelectronic", assetsFileToCacheDir);
-                                        //Granting Temporary Permissions to a URI
-                                        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
-                                        intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
-                                    } else {
-                                        intent.setDataAndType(Uri.fromFile(assetsFileToCacheDir), "application/vnd.android.package-archive");
-                                    }
-                                    getActivity().startActivity(intent);
-
-                                }
-                            })
-                            .setNegativeButton("取消", null).create().show();
+                if (listArray != null && listArray.size() > 0) {
+                    printEvent(listArray);
                 } else {
-                    getPrintData();
+                    CommonUtil.toastNoRepeat(mActivity, "数据为空");
                 }
+
+//                try {
+//                    if (!CommonUtil.appIsInstalled(getActivity(), Constants.CONSTANT.PRINT_SHARE_PACKAGE)) {
+//                        new android.app.AlertDialog.Builder(getActivity()).setTitle("提示")
+//                                .setMessage("您还未安装打印程序,点击确认开始安装")
+//                                .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+//                                    @Override
+//                                    public void onClick(DialogInterface dialog, int which) {
+//                                        try{
+//                                            Intent intent = new Intent(Intent.ACTION_VIEW);
+//                                            File assetsFileToCacheDir = FileUtils.getAssetsFileToCacheDir(getActivity(), "PrinterShare.apk");
+//                                            if (Build.VERSION.SDK_INT >= 24) {
+//                                                Uri apkUri = FileProvider.getUriForFile(mActivity, getActivity().getPackageName() +".fileprovider", assetsFileToCacheDir);
+//                                                //Granting Temporary Permissions to a URI
+//                                                intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+//                                                intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
+//                                            } else {
+//                                                intent.setDataAndType(Uri.fromFile(assetsFileToCacheDir), "application/vnd.android.package-archive");
+//                                            }
+//                                            getActivity().startActivity(intent);
+//                                        }catch (Exception e) {
+//                                            e.printStackTrace();
+//                                        }
+//                                    }
+//                                })
+//                                .setNegativeButton("取消", null).create().show();
+//                    } else {
+//                        getPrintData();
+//                    }
+//                }catch (Exception e) {
+//                    e.printStackTrace();
+//                }
                 break;
             case R.id.btn_close:
                 closePopupWindow();
@@ -369,6 +397,49 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
         }
     }
 
+    private void printEvent(com.alibaba.fastjson.JSONArray printArray) {
+        MyLog.e("aaa","打印的数组是:" + printArray.get(0));
+        if (isPrinting) {
+            CommonUtil.toastNoRepeat(mActivity, "正在打印中,请勿重复操作");
+            return;
+        }
+        isPrinting = true;
+        if (printArray != null && printArray.size() > 0) {
+            boolean isFail = false;
+            for (int i = 0; i < printArray.size(); i++) {
+                try {
+                    com.alibaba.fastjson.JSONObject printObject = printArray.getJSONObject(i);
+                    int printResult = PrintUtils.printBar(mActivity, printObject.toString(), mPrintDpi, null);
+                    if (printResult <= 0) {
+                        isFail = true;
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+            closePopupWindow();
+            //closeSplitPopupWindow();
+            //progressDialog.dismiss();
+            if (isFail) {
+                isConnected = false;
+                SharedPreUtil.saveInt(mActivity, "printConnect", 0);
+                CommonUtil.toastNoRepeat(mActivity, "打印失败,请重新连接打印机");
+
+                BlueToothPrintFragment blueToothPrintFragment = new BlueToothPrintFragment();
+
+                Bundle bundle = new Bundle();
+                bundle.putString(Constants.KEY.BARCODE_PRINT_ARRAY, printArray.toString());
+                blueToothPrintFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(WHCombineBatchFragment.this, blueToothPrintFragment);
+            } else {
+                CommonUtil.toastNoRepeat(mActivity, "打印成功");
+            }
+        } else {
+            CommonUtil.toastNoRepeat(mActivity, "打印失败,条码数据为空");
+        }
+        isPrinting = false;
+    }
+
 
     /**
      * 创建PopupWindow
@@ -412,7 +483,6 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
         }
     }
 
-
     /**
      * 并且获取条码的剩余数量
      */
@@ -433,7 +503,6 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
                 WHBreakingBatchGetBarcodeData whc = JsonTools.parseJsonToBean(s, WHBreakingBatchGetBarcodeData.class);
                 dataList.add(whc.getData().getData());
                 strDataList = new Gson().toJson(dataList);
-                LogUtil.e("dataList ", strDataList);
                 myAdapter.notifyDataSetChanged();
                 getLoadingView();
                 sum = CommonUtil.doubleAddition(sum, whc.getData().getData().getBAR_REMAIN());
@@ -446,7 +515,6 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
                 } else {
                     btnMerge.setEnabled(false);
                 }
-
             }
         }, new Response.ErrorListener() {
             @Override
@@ -485,11 +553,10 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
         stringRequest2 = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
             @Override
             public void onResponse(String s) {
-                LogUtil.e("combineBtnClickEvent onResponse  =", s);
+                MyLog.e("aaa", "合并的数据是:" + s);
                 whc2 = JsonTools.parseJsonToBean(s, WHCombineBatchFragmentCombineBtnClickEvent.class);
                 dataPrintList.add(whc2.getData());
                 strPrintDataList = new Gson().toJson(dataPrintList);
-                LogUtil.e("strPrintDataList", strPrintDataList);
                 //如果返回成功则初始化状态
                 delState = false;
                 dataList.clear();
@@ -498,6 +565,24 @@ public class WHCombineBatchFragment extends BaseFragment implements View.OnClick
                 tvToatal.setText(sum + "");
                 btnMerge.setEnabled(false);
                 initPopuptWindow(whc2.getData().getBAR_CODE(), CommonUtil.doubleFormat(whc2.getData().getBAR_REMAIN()));
+
+                //新增数据
+                com.alibaba.fastjson.JSONObject resultObject = JSON.parseObject(s);
+                com.alibaba.fastjson.JSONObject jb = resultObject.getJSONObject("data");
+
+                List<Object> list = new ArrayList<>();;
+                list.add(jb);
+                JSONArray jsonArray = new JSONArray(list);
+
+//                for (int i = 0; i < jsonArray.size(); i++) {
+//                    Object o = jsonArray.get(0);
+//                    com.alibaba.fastjson.JSONObject jsonObject = jsonArray.getJSONObject(0);
+//                    MyLog.e("aaa","数据是 Object:" + o);
+//                    MyLog.e("aaa","数据是 jsonObject:" + jsonObject.toString());
+//                }
+
+                //listArray = FastjsonUtil.getJSONArray(dataJson.toString(), "nolist");
+                listArray = jsonArray;
             }
         }, new Response.ErrorListener() {
             @Override

+ 10 - 5
app/src/main/java/com/uas/aowei_wms/global/GloableParams.java

@@ -861,6 +861,9 @@ public class GloableParams {
     public static final String LIGHT_RELEASE_THE_ALARM = "解除报警";
     public static final String GRIDNAME_FIND_MATERIALS = "找料";
     public static final String LIGHT_EMPTY_STORAGE_SPACE = "点亮空库位";
+
+    public static final String MENU_STORAGE_BARCODE_IN_CODE = "储位绑定";
+
     public static final String[] storageGridNames = {
             GRIDNAME_GOOD_SEARCH,
             GRIDNAME_BATCH_OPRATION,
@@ -877,7 +880,8 @@ public class GloableParams {
             GRIDNAME_SMART_SHELVES,
             LIGHT_RELEASE_THE_ALARM,
             GRIDNAME_FIND_MATERIALS,
-            LIGHT_EMPTY_STORAGE_SPACE
+            LIGHT_EMPTY_STORAGE_SPACE,
+            MENU_STORAGE_BARCODE_IN_CODE
     };
     public static final int[] storageGridImgs = {
             R.drawable.storage_good_search,
@@ -894,7 +898,8 @@ public class GloableParams {
             R.drawable.iv_shelves,
             R.drawable.jiechubaojing,
             R.drawable.zhaoliao,
-            R.drawable.dianliangkongkucun
+            R.drawable.dianliangkongkucun,
+            R.drawable.ic_storage_barcode_in
     };
     //DETAIL:搜索备料单号,下拉列表
     public static final String SPINNER_PREPARE_SEARCH = "搜索备料单号";
@@ -939,7 +944,7 @@ public class GloableParams {
     public static final String MENU_STORAGE_PRODUCT_STORAGE_IN = "完工品入库";
     public static final String MENU_STORAGE_RANDOM_CHECK = "抽查校验";
     public static final String MENU_STORAGE_BARCODE_IN = "入库采集";
-    public static final String MENU_STORAGE_BARCODE_IN_CODE = "储位绑定";
+//    public static final String MENU_STORAGE_BARCODE_IN_CODE = "储位绑定";
 
     public static final String[] storageInMenuNames = {
             MENU_STORAGE_RECHARGE,
@@ -951,7 +956,7 @@ public class GloableParams {
             MENU_STORAGE_BARCODE_IN,
 //            MENU_STORAGE_BARCODE_INFO_COLLECT,
 //            LIBRARY_COLLECTION
-            MENU_STORAGE_BARCODE_IN_CODE
+//            MENU_STORAGE_BARCODE_IN_CODE
     };
     public static final int[] storageInMenuImgs = {
             R.drawable.ic_storage_recharge,
@@ -963,7 +968,7 @@ public class GloableParams {
             R.drawable.ic_storage_barcode_in,
 //            R.drawable.ic_barcode_info_collect,
 //            R.drawable.ic_storage_iqc
-            R.drawable.ic_storage_barcode_in
+//            R.drawable.ic_storage_barcode_in
     };
 
     //-->SMT校验

+ 3 - 1
app/src/main/java/com/uas/aowei_wms/util/CommonUtil.java

@@ -610,9 +610,11 @@ public class CommonUtil {
                     errorStr = errorMsg.exceptionInfo;
                 }
             } else {
-                errorStr = "系统错误";
+                //errorStr = "系统错误";
+                errorStr = new String(volleyError.networkResponse.data);
             }
         }
+        MyLog.d("aaa","响应失败:" + errorStr);
         //振动提示
         makeNotice();
         /*MediaPlayer mp = new MediaPlayer();

+ 34 - 15
app/src/main/java/com/uas/aowei_wms/util/PrintUtils.java

@@ -2,7 +2,6 @@ package com.uas.aowei_wms.util;
 
 import android.content.Context;
 import android.text.TextUtils;
-import android.util.Log;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -17,24 +16,28 @@ public class PrintUtils {
             if (dpi <= 0) {
                 dpi = 203;
             }
+            MyLog.e("aaa", "打印数据是:" + dataJson);
 
             if (TextUtils.isEmpty(printTemplate)) {
                 printTemplate = SharedPreUtil.getString(context, Constants.FLAG.PRINT_TEMPLATE_CACHE, "");
+                MyLog.e("aaa", "打印模版数据是:" + printTemplate);
             }
-
-            int offset = 6,
-                    h = 400,
-                    v = 800,
-                    height = 220,//400
-                    qty = 1;
-
             JSONArray templateArray = JSON.parseArray(printTemplate);
+            JSONObject templateObj = templateArray.getJSONObject(0);
+            //la_offset 偏移值
+            //la_h    横向分辨率
+            //la_y   纵向分辨率
+            //la_height  最大高度
+            //la_qty 重复打印次数
+            int la_offset = FastjsonUtil.getInt(templateObj, "LA_OFFSET") == 0 ? 6 : FastjsonUtil.getInt(templateObj, "LA_OFFSET");
+            int la_h = FastjsonUtil.getInt(templateObj, "LA_H") == 0 ? 400 : FastjsonUtil.getInt(templateObj, "LA_H");
+            int la_y = FastjsonUtil.getInt(templateObj, "LA_Y") == 0 ? 800 : FastjsonUtil.getInt(templateObj, "LA_Y");
+            int la_height = FastjsonUtil.getInt(templateObj, "LA_HEIGHT") == 0 ? 300 : FastjsonUtil.getInt(templateObj, "LA_HEIGHT");
+            int la_qty = FastjsonUtil.getInt(templateObj, "LA_QTY") == 0 ? 1 : FastjsonUtil.getInt(templateObj, "LA_QTY");
             if (templateArray != null && templateArray.size() > 0) {
-
-                PrintHelper printHelper = new PrintHelper(offset, h, v, height, qty);
+                PrintHelper printHelper = new PrintHelper(la_offset, la_h, la_y, la_height, la_qty);
                 for (int i = 0; i < templateArray.size(); i++) {
                     JSONObject templateObject = templateArray.getJSONObject(i);
-
                     if (templateObject != null) {
                         String valuetype = FastjsonUtil.getText(templateObject, "LP_VALUETYPE");
                         double leftrate = FastjsonUtil.getDouble(templateObject, "LP_LEFTRATE");
@@ -44,18 +47,21 @@ public class PrintUtils {
                         double barHeight = FastjsonUtil.getDouble(templateObject, "LP_HEIGHT");
                         int barHeightInt = (int) (barHeight * dpi / 25.4);
                         int fontSize = FastjsonUtil.getInt(templateObject, "LP_SIZE");
-//                        String lp_font = FastjsonUtil.getText(templateObject, "LP_FONT");//字体类型
+                        //                        String lp_font = FastjsonUtil.getText(templateObject, "LP_FONT");//字体类型
                         String printKey = FastjsonUtil.getText(templateObject, "LP_NAME");
                         String printText = FastjsonUtil.getText(dataJson, printKey);
-                        Log.e("printText",printText);
-                        if (!TextUtils.isEmpty(printText)) {
+                        MyLog.e("aaa", "打印内容: " + printText +
+                                ",printKey:" + printKey + ",valuetype:" + valuetype);
+
+                        if (!TextUtils.isEmpty(printText) || "constant".equals(valuetype) && !TextUtils.isEmpty(dataJson)) {
                             switch (valuetype) {
                                 case "barcode"://条码
                                     printHelper = printHelper.printBarCode(printText)
                                             .setX(printX)//宽
                                             .setY(printY)//高
+                                            .setReader(true)    //是否打印条码文字
                                             .setHeight(barHeightInt - (int) (2 * dpi / 25.4))//条码单位高度
-                                            .setCodeTextFont(4)
+                                            .setCodeTextFont(fontSize)
                                             .setCodeTextSize(fontSize)
                                             .build();
                                     break;
@@ -80,6 +86,19 @@ public class PrintUtils {
                                             .setModel(2)
                                             .build();
                                     break;
+                                case "constant":        //文字
+                                    int textFont2 = 7;
+                                    if ("BAR_BATCHCODE".equals(printKey)) {
+                                        textFont2 = 7;
+                                    }
+                                    printHelper = printHelper.printText(printKey)
+                                            .setX(printX)
+                                            .setY(printY)
+                                            .setBold(2)
+                                            .setTextFont(textFont2)//字号
+                                            .setTextSize(fontSize)//字体大小,取接口的值
+                                            .build();
+                                    break;
                             }
                         }
                     }

+ 2 - 2
app/src/main/java/com/uas/aowei_wms/util/VolleyRequest.java

@@ -110,7 +110,7 @@ public class VolleyRequest {
                 Log.e("index",index+"");
             }
         }
-
+        MyLog.d("aaa","*************************" + "\n" + "接口地址:" + url);
         PdaApplication.mRequestQueue.cancelAll(httpParams.getUrl());
 
         stringRequest = new StringRequest(httpParams.getMethod(), url,
@@ -118,7 +118,7 @@ public class VolleyRequest {
                     @Override
                     public void onResponse(String s) {
                         try {
-                            LogUtil.prinlnLongMsg("responseSucc", s);
+                            MyLog.d("aaa","响应成功:" + s);
                             httpCallback.onSuccess(httpParams.getFlag(), s);
                         } catch (Exception e) {
                             e.printStackTrace();

+ 1 - 0
app/src/main/res/layout/fragment_barcode_in_collect.xml

@@ -106,6 +106,7 @@
                 android:focusable="true"
                 android:focusableInTouchMode="true"
                 android:hint="请输入仓位"
+                android:imeOptions="actionDone"
                 android:textColor="@color/black" />
         </TableRow>
 

+ 1 - 0
app/src/main/res/layout/fragment_iocout_make_material_oper.xml

@@ -156,6 +156,7 @@
                             android:drawableLeft="@drawable/switch_model"
                             android:drawablePadding="5dp"
                             android:gravity="center_vertical"
+                            android:enabled="false"
                             android:padding="10dp"
                             android:text="条码"
                             android:textColor="@color/body_text_1"

+ 164 - 119
app/src/main/res/layout/fragment_whcheck_barcode.xml

@@ -1,128 +1,173 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--条码校验-->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical" android:layout_width="match_parent"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
     android:background="@color/white"
-    android:layout_centerHorizontal="true"
-    android:gravity="center_horizontal"
     android:layout_height="match_parent">
     <!--上部:搜索-->
     <include layout="@layout/include_search"/>
-    <!--下部:信息展示-->
-    <TableLayout
-        android:id="@+id/tl_msg"
-        android:layout_marginTop="@dimen/space_top_8"
-        android:layout_width="wrap_content"
-        style="@style/CardWhiteStyle_wrapheight">
-        <!--条码号-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/text_whcheck_bar_code"/>
-            <TextView
+
+    <android.support.v4.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            android:layout_centerHorizontal="true"
+            android:gravity="center_horizontal"
+            >
+
+            <!--下部:信息展示-->
+            <TableLayout
+                android:id="@+id/tl_msg"
+                android:layout_marginTop="@dimen/space_top_8"
                 android:layout_width="wrap_content"
-                android:id="@+id/tv_bar_code"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--料号-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/text_whcheck_bar_procode"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_bar_procode"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--型号-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="型号"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_type_value"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--名称-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/text_whcheck_pr_detail"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_pr_detail"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--规格-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/text_whcheck_pr_spec"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_pr_spec"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--供应商-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/text_whcheck_ve_shortname"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_pr_ve_shortname"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--出库单-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/outbound_order"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_bar_whcode"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--数量-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/text_whcheck_bar_remain"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_bar_remain"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--储位-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="@string/text_whcheck_bar_location"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_bar_location"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-        <!--条码状态-->
-        <TableRow>
-            <TextView
-                style="@style/Table_li_left"
-                android:text="条码状态"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:id="@+id/tv_bar_status"
-                style="@style/Table_li_right"
-                android:textColor="@color/text_search"/>
-        </TableRow>
-    </TableLayout>
+                style="@style/CardWhiteStyle_wrapheight">
+                <!--条码号-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_bar_code"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_bar_code"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--料号-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_bar_procode"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_bar_procode"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--型号-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="型号"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_type_value"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--名称-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_pr_detail"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_pr_detail"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--规格-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_pr_spec"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_pr_spec"
+                        style="@style/Table_li_right"
+                        android:singleLine="false"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--供应商-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_ve_shortname"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_pr_ve_shortname"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--出库单-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_bar_whcode"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_bar_whcode"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--数量-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_bar_remain"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_bar_remain"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--储位-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="@string/text_whcheck_bar_location"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_bar_location"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--条码状态-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="条码状态"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_bar_status"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+                <!--生产日期-->
+                <TableRow>
+                    <TextView
+                        style="@style/Table_li_left"
+                        android:text="生产日期"/>
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:id="@+id/tv_production_date"
+                        style="@style/Table_li_right"
+                        android:textColor="@color/text_search"/>
+                </TableRow>
+
+            </TableLayout>
+
+            <Button
+                android:id="@+id/bt_print"
+                android:layout_marginTop="10dp"
+                android:layout_width="150dp"
+                android:layout_height="40dp"
+                android:layout_margin="5dp"
+                android:enabled="false"
+                android:text="打印"
+                android:textSize="16sp"
+                android:textColor="@color/text_normal"
+                android:background="@drawable/bg_button_search"
+                />
+
+        </LinearLayout>
+
+    </android.support.v4.widget.NestedScrollView>
+
+
 </LinearLayout>

+ 0 - 1
app/src/main/res/layout/fragment_whcombine_batch.xml

@@ -72,7 +72,6 @@
 
     </LinearLayout>
 
-
     <ListView
         android:id="@+id/list_view"
         android:layout_width="match_parent"

+ 21 - 1
app/src/main/res/layout/item_list_stock_already_list.xml

@@ -67,7 +67,7 @@
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="型号:" />
+            android:text="物料名称:" />
 
         <TextView
             android:id="@+id/tv_type_value"
@@ -78,6 +78,26 @@
 
     </LinearLayout>
 
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="生产日期:" />
+
+        <TextView
+            android:id="@+id/tv_"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            tools:text="12" />
+
+    </LinearLayout>
+
+
 
     <LinearLayout
         android:visibility="gone"

+ 1 - 1
app/src/main/res/layout/popupwindow_whcombine_bach.xml

@@ -48,7 +48,7 @@
             android:layout_height="wrap_content"
             android:layout_alignParentLeft="true"
             android:text="@string/print"
-            android:visibility="gone" />
+            />
 
         <Button
             android:id="@+id/btn_close"

+ 2 - 2
app/src/main/res/values/strings.xml

@@ -1,7 +1,7 @@
 <resources>
     <string name="my_app_name">UAS智能终端系统</string>
-    <string name="my_app_name_test">奥维-仓库</string>
-    <string name="my_app_name_test2">奥维-仓库</string>
+    <string name="my_app_name_test">奥维_仓库</string>
+    <string name="my_app_name_test2">奥维_仓库</string>
     <string name="hello_world">Hello world!</string>
     <string name="action_settings">Settings</string>
     <string name="title_activity_connect_server_fragment">ConnectServerFragment</string>

+ 2 - 2
build.gradle

@@ -54,8 +54,8 @@ ext {
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 1,
-            versionName      : "v1.0.0"
+            versionCode      : 11,
+            versionName      : "v1.1.0"
     ]
 
     depsVersion = [

+ 2 - 0
pda_libs/bluetooth/src/main/java/com/uas/bluetooth/PrintHelper.java

@@ -111,6 +111,8 @@ public class PrintHelper {
                     "" + x,
                     "" + y,
                     text.toString());
+
+
         }