Browse Source

修改文档修改相关功能,校修改盘点作业表格与UI,优化设备校准表格与接口逻辑,增加盘点作业, 入库明细增加获取单据编号接口.盘点作业调整显示文字, 校准设备清单增加自动增长序号.

songw 2 months ago
parent
commit
54f29cefbb
38 changed files with 3554 additions and 147 deletions
  1. 1 0
      .idea/gradle.xml
  2. 6 0
      .idea/vcs.xml
  3. 0 22
      app/proguard-rules.pro
  4. 1 1
      app/src/main/AndroidManifest.xml
  5. 9 8
      app/src/main/java/com/uas/zhongkelihan_devices_manager/activity/FunctionActivity.java
  6. 6 5
      app/src/main/java/com/uas/zhongkelihan_devices_manager/activity/HomeActivity.java
  7. 83 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/adapter/InventoryDetailAdapter.java
  8. 83 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/adapter/InventorySummaryAdapter.java
  9. 0 1
      app/src/main/java/com/uas/zhongkelihan_devices_manager/application/PdaApplication.java
  10. 81 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/CountingData.java
  11. 89 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/InventoryCollctBean.java
  12. 137 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/InventoryDetailBean.java
  13. 97 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/InventorySummaryBean.java
  14. 9 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/OutboundListBean.java
  15. 91 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/ReceiptDetails.java
  16. 455 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventoryBillFragment.java
  17. 588 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventoryCollectFragment.java
  18. 344 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventoryDetailListFragment.java
  19. 234 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventorySummaryListFragment.java
  20. 64 64
      app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/MaintenanceManagementListFragment.java
  21. 351 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/NewBePutInStorageOrderDetailFragment.java
  22. 0 33
      app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/VersionUpgradeFragment.java
  23. 76 5
      app/src/main/java/com/uas/zhongkelihan_devices_manager/global/GloableParams.java
  24. 6 0
      app/src/main/java/com/uas/zhongkelihan_devices_manager/util/Constants.java
  25. 1 2
      app/src/main/java/com/uas/zhongkelihan_devices_manager/util/FileUtils.java
  26. BIN
      app/src/main/res/drawable-xhdpi/pandianzuoye.png
  27. 62 0
      app/src/main/res/layout/fragment_inventory_bill.xml
  28. 190 0
      app/src/main/res/layout/fragment_inventory_collect.xml
  29. 54 0
      app/src/main/res/layout/fragment_inventory_detail_list.xml
  30. 54 0
      app/src/main/res/layout/fragment_inventory_huizong.xml
  31. 21 0
      app/src/main/res/layout/item_inventory_bill_list.xml
  32. 135 0
      app/src/main/res/layout/item_list_inventory_detail.xml
  33. 86 0
      app/src/main/res/layout/item_list_inventory_summary.xml
  34. 95 0
      app/src/main/res/layout/newbeputinstorageorderdetail_fragment.xml
  35. 20 0
      app/src/main/res/layout/pop_inventory_collect_menu.xml
  36. 3 4
      app/src/main/res/values/strings.xml
  37. 20 0
      app/src/main/res/values/styles.xml
  38. 2 2
      build.gradle

+ 1 - 0
.idea/gradle.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 0 - 22
app/proguard-rules.pro

@@ -1,25 +1,3 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
-
 ## 对于一些基本指令的添加############################################### 代码混淆压缩比,在0~7之间,默认为5,一般不做修改
 -optimizationpasses 5
 # 混合时不使用大小写混合,混合后的类名为小写

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

@@ -88,7 +88,7 @@
             />
         <provider
             android:name="android.support.v4.content.FileProvider"
-            android:authorities="com.uas.zhongkelihan_devices_manager"
+            android:authorities="com.uas.zhongkelihan_devices_manager.fileprovider"
             android:exported="false"
             android:grantUriPermissions="true"
             tools:replace="android:authorities">

+ 9 - 8
app/src/main/java/com/uas/zhongkelihan_devices_manager/activity/FunctionActivity.java

@@ -15,8 +15,8 @@ import com.android.volley.toolbox.StringRequest;
 import com.uas.zhongkelihan_devices_manager.R;
 import com.uas.zhongkelihan_devices_manager.fragment.BaseFragment;
 import com.uas.zhongkelihan_devices_manager.fragment.BreakdownRepairFragment;
-import com.uas.zhongkelihan_devices_manager.fragment.DeliveryForRepairFragment;
 import com.uas.zhongkelihan_devices_manager.fragment.IndexSettingFragment;
+import com.uas.zhongkelihan_devices_manager.fragment.InventoryBillFragment;
 import com.uas.zhongkelihan_devices_manager.fragment.MaintenanceManagementListFragment;
 import com.uas.zhongkelihan_devices_manager.fragment.StorageInFragment;
 import com.uas.zhongkelihan_devices_manager.fragment.StorageRechargeListFragment;
@@ -152,15 +152,16 @@ public class FunctionActivity extends BaseActivity implements View.OnClickListen
 //                    mFragment = new QualityManageFragment();
                     mFragment = new BreakdownRepairFragment();
                     break;
-                case GloableParams.TEXT_DEVICE_REPAIR://设备维修
-//                    mFragment = new QualityManageFragment();
-                    mFragment = new DeliveryForRepairFragment();
-                    break;
-                case GloableParams.TEXT_REQUISITION_TRANSFER://领用转移
+//                case GloableParams.TEXT_DEVICE_REPAIR://设备维修
+//                    mFragment = new DeliveryForRepairFragment();
+//                    break;
+                case GloableParams.TEXT_REQUISITION_TRANSFER:   //领用转移 / 设备校准申请
                     mFragment = new MaintenanceManagementListFragment();
                     break;
-
-                case GloableParams.GRIDNAME_SETTING://设置
+                case GloableParams.COUNT_JOB:       //盘点作业
+                    mFragment = new InventoryBillFragment();
+                    break;
+                case GloableParams.GRIDNAME_SETTING:    //设置
                     mFragment = new IndexSettingFragment();
                     break;
                 case GloableParams.WAREHOUSINGMANAGEMENT://扫一扫

+ 6 - 5
app/src/main/java/com/uas/zhongkelihan_devices_manager/activity/HomeActivity.java

@@ -146,7 +146,7 @@ public class HomeActivity extends BaseActivity implements AdapterView.OnItemClic
 //                startActivity(new Intent(HomeActivity.this, IndexActivity.class));
                 CommonUtil.toastNoRepeat(this, "正在开发中");
                 break;
-            case GloableParams.HOME_QUALITY_MANAGE://养护管理
+            case GloableParams.HOME_QUALITY_MANAGE:     //养护管理
                 intent.putExtra(DataSourceManager.KEY_GRID_ITEMNAME, itemName);
                 startActivity(intent);
                 break;
@@ -154,11 +154,12 @@ public class HomeActivity extends BaseActivity implements AdapterView.OnItemClic
                 intent.putExtra(DataSourceManager.KEY_GRID_ITEMNAME, itemName);
                 startActivity(intent);
                 break;
-            case GloableParams.TEXT_DEVICE_REPAIR://设备维修
-                intent.putExtra(DataSourceManager.KEY_GRID_ITEMNAME, itemName);
-                startActivity(intent);
-                break;
+//            case GloableParams.TEXT_DEVICE_REPAIR://设备维修
+//                intent.putExtra(DataSourceManager.KEY_GRID_ITEMNAME, itemName);
+//                startActivity(intent);
+//                break;
             case GloableParams.TEXT_REQUISITION_TRANSFER://设备维修
+            case GloableParams.COUNT_JOB:       //盘点作业
                 intent.putExtra(DataSourceManager.KEY_GRID_ITEMNAME, itemName);
                 startActivity(intent);
                 break;

+ 83 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/adapter/InventoryDetailAdapter.java

@@ -0,0 +1,83 @@
+package com.uas.zhongkelihan_devices_manager.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.uas.zhongkelihan_devices_manager.R;
+import com.uas.zhongkelihan_devices_manager.bean.InventoryDetailBean;
+import com.uas.zhongkelihan_devices_manager.util.CommonUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class InventoryDetailAdapter extends BaseAdapter {
+    private List<InventoryDetailBean> objects = new ArrayList<InventoryDetailBean>();
+    private Context context;
+    private LayoutInflater layoutInflater;
+
+    public InventoryDetailAdapter(Context context, List<InventoryDetailBean> objects) {
+        this.context = context;
+        this.layoutInflater = LayoutInflater.from(context);
+        this.objects = objects;
+    }
+
+    @Override
+    public int getCount() {
+        return objects.size();
+    }
+
+    @Override
+    public InventoryDetailBean getItem(int position) {
+        return objects.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            convertView = layoutInflater.inflate(R.layout.item_list_inventory_detail, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        initializeViews((InventoryDetailBean) getItem(position), (ViewHolder) convertView.getTag());
+        return convertView;
+    }
+
+    private void initializeViews(InventoryDetailBean object, ViewHolder holder) {
+        try {
+            if (object != null) {
+                holder.mProdcodeTv.setText(object.getBI_PRODCODE());
+                holder.mQuantityTv.setText(CommonUtil.doubleFormat(object.getBI_INQTY()));
+                holder.mBrandTv.setText(object.getBI_BARCODE());
+                holder.mDatecodeTv.setText(object.getPR_ORISPECCODE());
+//                holder.mLotnoTv.setText(object.getBI_LOTNO());
+            }
+        } catch (Exception e) {
+
+        }
+    }
+
+    protected class ViewHolder {
+        private TextView mProdcodeTv;
+        private TextView mBrandTv;
+        private TextView mQuantityTv;
+        private TextView mDatecodeTv;
+        private TextView mLotnoTv;
+
+        public ViewHolder(View view) {
+            mProdcodeTv = (TextView) view.findViewById(R.id.list_inventory_detail_prodcode_tv);
+            mQuantityTv = (TextView) view.findViewById(R.id.list_inventory_detail_quantity_tv);
+            mDatecodeTv = (TextView) view.findViewById(R.id.list_inventory_detail_datecode_tv);
+            mLotnoTv = (TextView) view.findViewById(R.id.list_inventory_detail_lotno_tv);
+            mBrandTv = (TextView) view.findViewById(R.id.list_inventory_detail_brand_tv);
+        }
+    }
+}

+ 83 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/adapter/InventorySummaryAdapter.java

@@ -0,0 +1,83 @@
+package com.uas.zhongkelihan_devices_manager.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.uas.zhongkelihan_devices_manager.R;
+import com.uas.zhongkelihan_devices_manager.bean.InventorySummaryBean;
+import com.uas.zhongkelihan_devices_manager.util.CommonUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class InventorySummaryAdapter extends BaseAdapter {
+    private List<InventorySummaryBean> objects = new ArrayList<InventorySummaryBean>();
+    private Context context;
+    private LayoutInflater layoutInflater;
+
+    public InventorySummaryAdapter(Context context, List<InventorySummaryBean> objects) {
+        this.context = context;
+        this.layoutInflater = LayoutInflater.from(context);
+        this.objects = objects;
+    }
+
+    @Override
+    public int getCount() {
+        return objects.size();
+    }
+
+    @Override
+    public InventorySummaryBean getItem(int position) {
+        return objects.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            convertView = layoutInflater.inflate(R.layout.item_list_inventory_summary, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        initializeViews((InventorySummaryBean) getItem(position), (ViewHolder) convertView.getTag());
+        return convertView;
+    }
+
+    private void initializeViews(InventorySummaryBean object, ViewHolder holder) {
+        try {
+            if (object != null) {
+                holder.mProdcodeTv.setText(object.getBI_PRODCODE());
+                holder.mQuantityTv.setText(CommonUtil.doubleFormat(object.getBI_INQTY()));
+                holder.mBrandTv.setText(object.getBI_BRAND());
+                holder.mSpecTv.setText(object.getBi_whcode());
+                holder.mDetailTv.setText(object.getPR_DETAIL());
+            }
+        } catch (Exception e) {
+
+        }
+    }
+
+    protected class ViewHolder {
+        private TextView mProdcodeTv;
+        private TextView mBrandTv;
+        private TextView mQuantityTv;
+        private TextView mSpecTv;
+        private TextView mDetailTv;
+
+        public ViewHolder(View view) {
+            mProdcodeTv = (TextView) view.findViewById(R.id.list_inventory_summary_prodcode_tv);
+            mQuantityTv = (TextView) view.findViewById(R.id.list_inventory_summary_quantity_tv);
+            mSpecTv = (TextView) view.findViewById(R.id.list_inventory_summary_spec_tv);
+            mDetailTv = (TextView) view.findViewById(R.id.list_inventory_summary_detail_tv);
+            mBrandTv = (TextView) view.findViewById(R.id.list_inventory_summary_brand_tv);
+        }
+    }
+}

+ 0 - 1
app/src/main/java/com/uas/zhongkelihan_devices_manager/application/PdaApplication.java

@@ -74,7 +74,6 @@ public class PdaApplication extends Application {
             mSoundPool = new SoundPool(4, AudioAttributes.CONTENT_TYPE_MUSIC, 0);
         }
 
-
         mSoundMap = new HashMap<>();
         mSoundMap.put(SoundUtil.SOUND_ARIEL, mSoundPool.load(this, R.raw.ariel, 1));
         mSoundMap.put(SoundUtil.SOUND_CARME, mSoundPool.load(this, R.raw.carme, 1));

+ 81 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/CountingData.java

@@ -0,0 +1,81 @@
+package com.uas.zhongkelihan_devices_manager.bean;
+
+public
+        /**
+         * Created by sw on 2026-06-26
+         */
+class CountingData {
+
+    private long POS;   //序号
+    private String DE_CODE;     //设备编号
+    private String DE_NAME;     //设备名称
+    private String DE_CURRENTCENTERNAME;     //使用部门
+    private String DE_MANAGEMAN;     //管理员
+    private String DE_STOCKQTY;     //账面库存
+    private String DE_CHECKQTY;     //实盘库存
+    private String DE_SPEC;     //设备规格
+
+    public long getPOS() {
+        return POS;
+    }
+
+    public void setPOS(long POS) {
+        this.POS = POS;
+    }
+
+    public String getDE_CODE() {
+        return DE_CODE;
+    }
+
+    public void setDE_CODE(String DE_CODE) {
+        this.DE_CODE = DE_CODE;
+    }
+
+    public String getDE_NAME() {
+        return DE_NAME;
+    }
+
+    public void setDE_NAME(String DE_NAME) {
+        this.DE_NAME = DE_NAME;
+    }
+
+    public String getDE_CURRENTCENTERNAME() {
+        return DE_CURRENTCENTERNAME;
+    }
+
+    public void setDE_CURRENTCENTERNAME(String DE_CURRENTCENTERNAME) {
+        this.DE_CURRENTCENTERNAME = DE_CURRENTCENTERNAME;
+    }
+
+    public String getDE_MANAGEMAN() {
+        return DE_MANAGEMAN;
+    }
+
+    public void setDE_MANAGEMAN(String DE_MANAGEMAN) {
+        this.DE_MANAGEMAN = DE_MANAGEMAN;
+    }
+
+    public String getDE_STOCKQTY() {
+        return DE_STOCKQTY;
+    }
+
+    public void setDE_STOCKQTY(String DE_STOCKQTY) {
+        this.DE_STOCKQTY = DE_STOCKQTY;
+    }
+
+    public String getDE_CHECKQTY() {
+        return DE_CHECKQTY;
+    }
+
+    public void setDE_CHECKQTY(String DE_CHECKQTY) {
+        this.DE_CHECKQTY = DE_CHECKQTY;
+    }
+
+    public String getDE_SPEC() {
+        return DE_SPEC;
+    }
+
+    public void setDE_SPEC(String DE_SPEC) {
+        this.DE_SPEC = DE_SPEC;
+    }
+}

+ 89 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/InventoryCollctBean.java

@@ -0,0 +1,89 @@
+package com.uas.zhongkelihan_devices_manager.bean;
+
+public
+        /**
+         * Created by sw on 2024-12-03
+         */
+class InventoryCollctBean {
+
+    //ST_WHCODE 仓库
+    //STD_PRODCODE 料号
+    // PR_DETAIL 名称
+    // BAR_LOCATION 储位
+    //STD_BATCHQTY 账面库存
+    // STD_ACTQTY 实盘库存
+    //PR_SPEC 规格
+
+    private String ST_WHCODE;
+    private String STD_PRODCODE;
+    private String PR_DETAIL;
+    private String BAR_LOCATION;
+    private double STD_BATCHQTY;
+    private double STD_ACTQTY;
+    private String PR_SPEC;
+    private long POS;   //序号
+
+    public long getPOS() {
+        return POS;
+    }
+
+    public void setPOS(long POS) {
+        this.POS = POS;
+    }
+
+    public String getST_WHCODE() {
+        return ST_WHCODE;
+    }
+
+    public void setST_WHCODE(String ST_WHCODE) {
+        this.ST_WHCODE = ST_WHCODE;
+    }
+
+    public String getSTD_PRODCODE() {
+        return STD_PRODCODE;
+    }
+
+    public void setSTD_PRODCODE(String STD_PRODCODE) {
+        this.STD_PRODCODE = STD_PRODCODE;
+    }
+
+    public String getPR_DETAIL() {
+        return PR_DETAIL;
+    }
+
+    public void setPR_DETAIL(String PR_DETAIL) {
+        this.PR_DETAIL = PR_DETAIL;
+    }
+
+    public String getBAR_LOCATION() {
+        return BAR_LOCATION;
+    }
+
+    public void setBAR_LOCATION(String BAR_LOCATION) {
+        this.BAR_LOCATION = BAR_LOCATION;
+    }
+
+    public double getSTD_BATCHQTY() {
+        return STD_BATCHQTY;
+    }
+
+    public void setSTD_BATCHQTY(double STD_BATCHQTY) {
+        this.STD_BATCHQTY = STD_BATCHQTY;
+    }
+
+    public double getSTD_ACTQTY() {
+        return STD_ACTQTY;
+    }
+
+    public void setSTD_ACTQTY(double STD_ACTQTY) {
+        this.STD_ACTQTY = STD_ACTQTY;
+    }
+
+    public String getPR_SPEC() {
+        return PR_SPEC;
+    }
+
+    public void setPR_SPEC(String PR_SPEC) {
+        this.PR_SPEC = PR_SPEC;
+    }
+}

+ 137 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/InventoryDetailBean.java

@@ -0,0 +1,137 @@
+package com.uas.zhongkelihan_devices_manager.bean;
+
+public class InventoryDetailBean {
+
+    /**
+     * BI_ID : 91979
+     * BI_BARCODE : 1117QQ
+     * BI_CONTENT : 08052R684K250BL*3000*111*Y*11111*11111*1117QQ
+     * BI_PRODCODE : 08052R684K250BL
+     * BI_INQTY : 3000
+     * BI_INOUTNO : KC19030003
+     * BI_WHCODE : null
+     * BI_BRAND : Y
+     * BI_ORDERCODE : 11111
+     * BI_DATECODE : 111
+     * BI_LOTNO : 11111
+     * RN : 1
+     */
+
+    private long BI_ID;
+    private String BI_BARCODE;
+    private String BI_CONTENT;
+    private String BI_PRODCODE;
+    private double BI_INQTY;
+    private String BI_INOUTNO;
+    private Object BI_WHCODE;
+    private String BI_BRAND;
+    private String BI_ORDERCODE;
+    private String BI_DATECODE;
+    private String BI_LOTNO;
+    private String PR_ORISPECCODE;
+    private int RN;
+
+    public long getBI_ID() {
+        return BI_ID;
+    }
+
+    public void setBI_ID(long BI_ID) {
+        this.BI_ID = BI_ID;
+    }
+
+    public String getBI_BARCODE() {
+        return BI_BARCODE;
+    }
+
+    public void setBI_BARCODE(String BI_BARCODE) {
+        this.BI_BARCODE = BI_BARCODE;
+    }
+
+    public String getBI_CONTENT() {
+        return BI_CONTENT;
+    }
+
+    public void setBI_CONTENT(String BI_CONTENT) {
+        this.BI_CONTENT = BI_CONTENT;
+    }
+
+    public String getBI_PRODCODE() {
+        return BI_PRODCODE;
+    }
+
+    public void setBI_PRODCODE(String BI_PRODCODE) {
+        this.BI_PRODCODE = BI_PRODCODE;
+    }
+
+    public double getBI_INQTY() {
+        return BI_INQTY;
+    }
+
+    public void setBI_INQTY(double BI_INQTY) {
+        this.BI_INQTY = BI_INQTY;
+    }
+
+    public String getBI_INOUTNO() {
+        return BI_INOUTNO;
+    }
+
+    public void setBI_INOUTNO(String BI_INOUTNO) {
+        this.BI_INOUTNO = BI_INOUTNO;
+    }
+
+    public Object getBI_WHCODE() {
+        return BI_WHCODE;
+    }
+
+    public void setBI_WHCODE(Object BI_WHCODE) {
+        this.BI_WHCODE = BI_WHCODE;
+    }
+
+    public String getBI_BRAND() {
+        return BI_BRAND;
+    }
+
+    public void setBI_BRAND(String BI_BRAND) {
+        this.BI_BRAND = BI_BRAND;
+    }
+
+    public String getBI_ORDERCODE() {
+        return BI_ORDERCODE;
+    }
+
+    public void setBI_ORDERCODE(String BI_ORDERCODE) {
+        this.BI_ORDERCODE = BI_ORDERCODE;
+    }
+
+    public String getBI_DATECODE() {
+        return BI_DATECODE;
+    }
+
+    public void setBI_DATECODE(String BI_DATECODE) {
+        this.BI_DATECODE = BI_DATECODE;
+    }
+
+    public String getBI_LOTNO() {
+        return BI_LOTNO;
+    }
+
+    public void setBI_LOTNO(String BI_LOTNO) {
+        this.BI_LOTNO = BI_LOTNO;
+    }
+
+    public String getPR_ORISPECCODE() {
+        return PR_ORISPECCODE;
+    }
+
+    public void setPR_ORISPECCODE(String PR_ORISPECCODE) {
+        this.PR_ORISPECCODE = PR_ORISPECCODE;
+    }
+
+    public int getRN() {
+        return RN;
+    }
+
+    public void setRN(int RN) {
+        this.RN = RN;
+    }
+}

+ 97 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/InventorySummaryBean.java

@@ -0,0 +1,97 @@
+package com.uas.zhongkelihan_devices_manager.bean;
+
+public class InventorySummaryBean {
+
+    /**
+     * BI_INQTY : 3000
+     * BI_PRODCODE : 08052R684K250BL
+     * BI_INOUTNO : KC19030003
+     * PR_DETAIL : 贴片电容
+     * PR_SPEC : 0805,X7R,0.68uF,-10%,25V
+     * BI_BRAND : 111
+     * BI_PIID : 50731037
+     * RN : 1
+     */
+
+    private double BI_INQTY;
+    private String BI_PRODCODE;
+    private String BI_INOUTNO;
+    private String PR_DETAIL;
+    private String PR_SPEC;
+    private String BI_BRAND;
+    private long BI_PIID;
+    private int RN;
+    private String  bi_whcode;
+
+    public String getBi_whcode() {
+        return bi_whcode;
+    }
+
+    public void setBi_whcode(String bi_whcode) {
+        this.bi_whcode = bi_whcode;
+    }
+
+    public double getBI_INQTY() {
+        return BI_INQTY;
+    }
+
+    public void setBI_INQTY(double BI_INQTY) {
+        this.BI_INQTY = BI_INQTY;
+    }
+
+    public String getBI_PRODCODE() {
+        return BI_PRODCODE;
+    }
+
+    public void setBI_PRODCODE(String BI_PRODCODE) {
+        this.BI_PRODCODE = BI_PRODCODE;
+    }
+
+    public String getBI_INOUTNO() {
+        return BI_INOUTNO;
+    }
+
+    public void setBI_INOUTNO(String BI_INOUTNO) {
+        this.BI_INOUTNO = BI_INOUTNO;
+    }
+
+    public String getPR_DETAIL() {
+        return PR_DETAIL;
+    }
+
+    public void setPR_DETAIL(String PR_DETAIL) {
+        this.PR_DETAIL = PR_DETAIL;
+    }
+
+    public String getPR_SPEC() {
+        return PR_SPEC;
+    }
+
+    public void setPR_SPEC(String PR_SPEC) {
+        this.PR_SPEC = PR_SPEC;
+    }
+
+    public String getBI_BRAND() {
+        return BI_BRAND;
+    }
+
+    public void setBI_BRAND(String BI_BRAND) {
+        this.BI_BRAND = BI_BRAND;
+    }
+
+    public long getBI_PIID() {
+        return BI_PIID;
+    }
+
+    public void setBI_PIID(long BI_PIID) {
+        this.BI_PIID = BI_PIID;
+    }
+
+    public int getRN() {
+        return RN;
+    }
+
+    public void setRN(int RN) {
+        this.RN = RN;
+    }
+}

+ 9 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/OutboundListBean.java

@@ -8,10 +8,19 @@ public class OutboundListBean {
     private String DC_INDATE;
     private String DC_STATUS;
     private String DC_DEVCODE;
+    private String DC_INMAN;
     private String DC_DEVNAME;
     private String DC_LINECODE;
     private String DC_ID;
 
+    public String getDC_INMAN() {
+        return DC_INMAN;
+    }
+
+    public void setDC_INMAN(String DC_INMAN) {
+        this.DC_INMAN = DC_INMAN;
+    }
+
     public String getDC_ID() {
         return DC_ID;
     }

+ 91 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/bean/ReceiptDetails.java

@@ -0,0 +1,91 @@
+package com.uas.zhongkelihan_devices_manager.bean;
+
+public
+        /**
+         * Created by sw on 2026-06-12
+         */
+class ReceiptDetails {
+
+    private String DE_CODE;     //设备编号
+    private String DE_NAME;     //DE_NAME
+    private Object DE_SPEC;     //规格
+    private String DE_RUNSTATUS;        //运行状态
+    private String DE_KIND;     //类别
+    private String DE_CURRENTCENTERNAME;    //当前使用部门
+    private Object DE_STARTDATE;    //设备管理员
+    private Object DE_MANAGEMAN;    //启动日期
+    private int SN;    //序号
+
+    public int getSN() {
+        return SN;
+    }
+
+    public void setSN(int SN) {
+        this.SN = SN;
+    }
+
+    public String getDE_CODE() {
+        return DE_CODE;
+    }
+
+    public void setDE_CODE(String DE_CODE) {
+        this.DE_CODE = DE_CODE;
+    }
+
+    public String getDE_NAME() {
+        return DE_NAME;
+    }
+
+    public void setDE_NAME(String DE_NAME) {
+        this.DE_NAME = DE_NAME;
+    }
+
+    public Object getDE_SPEC() {
+        return DE_SPEC;
+    }
+
+    public void setDE_SPEC(Object DE_SPEC) {
+        this.DE_SPEC = DE_SPEC;
+    }
+
+    public String getDE_RUNSTATUS() {
+        return DE_RUNSTATUS;
+    }
+
+    public void setDE_RUNSTATUS(String DE_RUNSTATUS) {
+        this.DE_RUNSTATUS = DE_RUNSTATUS;
+    }
+
+    public String getDE_KIND() {
+        return DE_KIND;
+    }
+
+    public void setDE_KIND(String DE_KIND) {
+        this.DE_KIND = DE_KIND;
+    }
+
+    public String getDE_CURRENTCENTERNAME() {
+        return DE_CURRENTCENTERNAME;
+    }
+
+    public void setDE_CURRENTCENTERNAME(String DE_CURRENTCENTERNAME) {
+        this.DE_CURRENTCENTERNAME = DE_CURRENTCENTERNAME;
+    }
+
+    public Object getDE_STARTDATE() {
+        return DE_STARTDATE;
+    }
+
+    public void setDE_STARTDATE(Object DE_STARTDATE) {
+        this.DE_STARTDATE = DE_STARTDATE;
+    }
+
+    public Object getDE_MANAGEMAN() {
+        return DE_MANAGEMAN;
+    }
+
+    public void setDE_MANAGEMAN(Object DE_MANAGEMAN) {
+        this.DE_MANAGEMAN = DE_MANAGEMAN;
+    }
+
+}

+ 455 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventoryBillFragment.java

@@ -0,0 +1,455 @@
+package com.uas.zhongkelihan_devices_manager.fragment;
+
+import android.content.Context;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.Gravity;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.PopupWindow;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.uas.zhongkelihan_devices_manager.R;
+import com.uas.zhongkelihan_devices_manager.activity.FunctionActivity;
+import com.uas.zhongkelihan_devices_manager.application.PdaApplication;
+import com.uas.zhongkelihan_devices_manager.bean.IOCOutMakeMaterialFuzzySearch;
+import com.uas.zhongkelihan_devices_manager.bean.StorageInBillBean;
+import com.uas.zhongkelihan_devices_manager.global.GloableParams;
+import com.uas.zhongkelihan_devices_manager.util.CommonUtil;
+import com.uas.zhongkelihan_devices_manager.util.Constants;
+import com.uas.zhongkelihan_devices_manager.util.FastjsonUtil;
+import com.uas.zhongkelihan_devices_manager.util.FragmentUtils;
+import com.uas.zhongkelihan_devices_manager.util.HttpCallback;
+import com.uas.zhongkelihan_devices_manager.util.HttpParams;
+import com.uas.zhongkelihan_devices_manager.util.JsonTools;
+import com.uas.zhongkelihan_devices_manager.util.MyArrayAdapter;
+import com.uas.zhongkelihan_devices_manager.util.VolleyRequest;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.ButterKnife;
+
+
+/**
+ * Created by RaoMeng on 2019/3/23
+ * Desc: 盘点单据确认
+ */
+public class InventoryBillFragment extends BaseFragment {
+    private AutoCompleteTextView mNumEdittext;
+    private ImageView mCleanIv;
+    private Button mSubmitButton;
+    private ListView mNumListView;
+    private InputMethodManager mInputMethodManager;
+    private AdapterListView adapterListView;
+    private IOCOutMakeMaterialFuzzySearch fuzzySearchData;
+    private MyArrayAdapter<String> fuzzyStringAdapter;
+    private List<StorageInBillBean> mBillList;
+    private PopupWindow listViewPopupWindow;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_inventory_bill;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("盘点作业");
+
+        mNumEdittext = root.findViewById(R.id.inventory_bill_num_et);
+        mCleanIv = root.findViewById(R.id.inventory_bill_clear_iv);
+        mSubmitButton = root.findViewById(R.id.inventory_bill_submit_btn);
+        mNumListView = root.findViewById(R.id.inventory_bill_list_lv);
+
+        //弹出软键盘
+        mInputMethodManager = (InputMethodManager) root.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+        mInputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
+        mNumEdittext.requestFocus();
+        mNumEdittext.setThreshold(1);
+
+        mBillList = (List<StorageInBillBean>) PdaApplication.getDataCacheFromMap(Constants.FLAG.INVENTORY_BILL_LIST_CACHE);
+        if (mBillList == null || mBillList.size() == 0) {
+            mBillList = new ArrayList<>();
+            adapterListView = new AdapterListView(getActivity(), R.layout.item_inventory_bill_list, mBillList);
+            mNumListView.setAdapter(adapterListView);
+        } else {
+            adapterListView = new AdapterListView(getActivity(), R.layout.item_inventory_bill_list, mBillList);
+            mNumListView.setAdapter(adapterListView);
+        }
+    }
+
+    @Override
+    protected void initEvents() {
+        mCleanIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mNumEdittext.setText("");
+            }
+        });
+
+        mNumListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+                rowClickEvent(i);
+            }
+        });
+        mNumListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
+            @Override
+            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
+                //把listView 的item传过去
+                showListPopupWindow(i);
+                return true;
+            }
+        });
+        mNumEdittext.addTextChangedListener(inOutNoTextWatcher);
+
+        mNumEdittext.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                getStockChecks();
+            }
+        });
+
+        mNumEdittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if (actionId == EditorInfo.IME_ACTION_SEND
+                        || actionId == EditorInfo.IME_ACTION_SEARCH
+                        || actionId == EditorInfo.IME_ACTION_DONE
+                        || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
+                    getStockChecks();
+                    return true;
+                }
+                return false;
+            }
+        });
+
+        mSubmitButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getStockChecks();
+            }
+        });
+    }
+
+    private void getStockChecks() {
+        if (TextUtils.isEmpty(mNumEdittext.getText().toString().trim())) {
+            CommonUtil.toastNoRepeat(getActivity(), "请输入盘点单号");
+        }
+//        else if (CommonUtil.isStringContainsSpecialChar(mNumEdittext.getText().toString().trim())) {
+//            CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.barcode_cannot_contain_special));
+//        }
+        else {
+            //判断单号和仓库组合是否已经存在于变量orders中
+            boolean isExist = false;
+            for (int i = 0; i < mBillList.size(); i++) {
+                if ((mBillList.get(i).getPI_INOUTNO()).equals(mNumEdittext.getText().toString().trim())) {
+                    isExist = true;
+                    break;
+                }
+            }
+            if (isExist) {
+                Toast.makeText(getActivity(), "单号重复", Toast.LENGTH_SHORT).show();
+                reset();
+            } else {
+                submitBtnClick();
+            }
+        }
+    }
+
+    @Override
+    protected void initDatas() {
+
+    }
+
+    private TextWatcher inOutNoTextWatcher = new TextWatcher() {
+        @Override
+        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+        }
+
+        @Override
+        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+            //当字数超过3个,自动弹出输入提示框
+            if (charSequence.length() >= 3) {
+                if (!charSequence.toString().matches(Constants.REGEX.NO_SYMBOL)) {
+                    CommonUtil.toastNoRepeat(getActivity(), getResources().getString(R.string.note_number_cannot_contain_special));
+                    mNumEdittext.setText(null);
+                    mNumEdittext.requestFocus();
+                } else {
+                    fuzzySearch();
+                }
+
+            }
+        }
+
+        @Override
+        public void afterTextChanged(Editable editable) {
+            if (mSubmitButton != null) {
+                if (editable.length() == 0) {
+                    mSubmitButton.setEnabled(false);
+                    mCleanIv.setVisibility(View.GONE);
+                } else {
+                    mSubmitButton.setEnabled(true);
+                    mCleanIv.setVisibility(View.VISIBLE);
+                }
+            }
+        }
+    };
+
+    //根据输入字母请求订单号,模糊搜索
+    private void fuzzySearch() {
+        String url = null;
+        try {
+            url = GloableParams.ADDRESS_BARSTOCK_FUZZYSEARCH
+                    + "?inoutNo=" + URLEncoder.encode(mNumEdittext.getText().toString().toLowerCase(), "utf-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(url)
+                .tag(TAG + "fuzzysearch")
+                .flag(0)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                String result = o.toString();
+                List<String> autoStrings = new ArrayList<>();
+                fuzzySearchData = JsonTools.parseJsonToBean(result, IOCOutMakeMaterialFuzzySearch.class);
+                if (fuzzySearchData.getData() == null) {
+                } else {
+                    autoStrings.clear();
+                    fuzzyStringAdapter = new MyArrayAdapter<String>(mActivity, android.R.layout.simple_dropdown_item_1line, autoStrings);
+                    if (mNumEdittext != null) {
+                        mNumEdittext.setAdapter(fuzzyStringAdapter);
+                    }
+                    for (int i = 0; i < fuzzySearchData.getData().size(); i++) {
+                        fuzzyStringAdapter.add(fuzzySearchData.getData().get(i).getPI_INOUTNO());
+                    }
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                reset();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    private void submitBtnClick() {
+        progressDialog.show();
+        String inOutNoString = mNumEdittext.getText().toString();
+        if (TextUtils.isEmpty(mNumEdittext.getText().toString())) {
+            return;
+        }
+
+        //发送请求至服务器进行确认
+        String url = null;
+        try {
+            url = GloableParams.ADDRESS_BARSTOCK_GETSTOCKCHECKS
+                    + "?inoutNo=" + URLEncoder.encode(inOutNoString, "utf-8");
+        } catch (UnsupportedEncodingException e) {
+            url = GloableParams.ADDRESS_BARSTOCK_GETSTOCKCHECKS
+                    + "?inoutNo=" + inOutNoString;
+            e.printStackTrace();
+        }
+
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(url)
+                .tag(TAG + "getprodout")
+                .flag(0)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    if (dataArray == null || dataArray.size() <= 0) {
+                        return;
+                    }
+                    JSONObject dataObject = dataArray.getJSONObject(0);
+                    StorageInBillBean billBean = new StorageInBillBean();
+                    billBean.setPI_INOUTNO(FastjsonUtil.getText(dataObject, "PI_INOUTNO"));
+                    billBean.setPI_CLASS(FastjsonUtil.getText(dataObject, "PI_CLASS"));
+                    billBean.setPI_CARDCODE(FastjsonUtil.getText(dataObject, "PI_CARDCODE"));
+                    billBean.setPI_ID(FastjsonUtil.getLong(dataObject, "PI_ID"));
+                    billBean.setPI_PDASTATUS(FastjsonUtil.getText(dataObject, "PI_PDASTATUS"));
+                    billBean.setPI_STATUS(FastjsonUtil.getText(dataObject, "PI_STATUSCODE"));
+
+                    //判断单号和仓库组合是否已经存在于变量orders中
+                    for (int i = 0; i < mBillList.size(); i++) {
+                        if (!TextUtils.isEmpty(billBean.getPI_INOUTNO())
+                                && billBean.getPI_INOUTNO().equals(mBillList.get(i).getPI_INOUTNO())) {
+                            Toast.makeText(getActivity(), "单号重复", Toast.LENGTH_SHORT).show();
+                            reset();
+                            return;
+                        }
+                    }
+                    mBillList.add(0, billBean);
+                    adapterListView.notifyDataSetChanged();
+                    if (getActivity() != null) {
+                        mNumEdittext.getText().clear();
+                        CommonUtil.closeKeybord(((EditText) mNumEdittext), mActivity);
+                        if (progressDialog.isShowing())
+                            progressDialog.dismiss();
+                    }
+
+                } catch (Exception e) {
+
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                if (failStr != null) {
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                }
+                reset();
+            }
+        });
+    }
+
+    private void showListPopupWindow(final int i) {
+        //点击删除移除ataList.get(i)数据
+        View view = LayoutInflater.from(getActivity()).inflate(R.layout.popupwindow_ioc_out_make_material_listview, null);
+        Button deleteBtn = (Button) view.findViewById(R.id.delete);
+        Button againBtn = (Button) view.findViewById(R.id.again);
+        againBtn.setVisibility(View.GONE);
+        deleteBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                deleteEvent(i);
+                closeListPopupWindow();
+            }
+        });
+        listViewPopupWindow = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        listViewPopupWindow.setAnimationStyle(R.style.MenuAnimationFade);
+        listViewPopupWindow.setBackgroundDrawable(new BitmapDrawable());
+        CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
+        listViewPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                closeListPopupWindow();
+            }
+        });
+        listViewPopupWindow.showAtLocation(mSubmitButton, Gravity.CENTER, 0, 0);
+    }
+
+    //关闭listView的PopupWindow
+    private void closeListPopupWindow() {
+        if (listViewPopupWindow != null) {
+            listViewPopupWindow.dismiss();
+            listViewPopupWindow = null;
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+    }
+
+    /**
+     * 删除单据
+     *
+     * @param position
+     */
+    private void deleteEvent(final int position) {
+        try {
+            mBillList.remove(position);
+            adapterListView.notifyDataSetChanged();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    private void rowClickEvent(final int i) {
+        String pi_inoutno = mBillList.get(i).getPI_INOUTNO();
+        long pi_id = mBillList.get(i).getPI_ID();
+        String pi_class = mBillList.get(i).getPI_CLASS();
+        InventoryCollectFragment collectFragment = new InventoryCollectFragment();
+
+        Bundle bundle = new Bundle();
+        bundle.putString("pi_inoutno", pi_inoutno);
+        bundle.putString("pi_id", pi_id + "");
+        bundle.putString("pi_class", pi_class);
+
+        collectFragment.setArguments(bundle);
+
+        FragmentUtils.switchFragment(InventoryBillFragment.this, collectFragment);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+
+        CommonUtil.closeKeybord(((EditText) mNumEdittext), mActivity);
+        ButterKnife.unbind(this);
+        PdaApplication.putDataCache2Map(Constants.FLAG.INVENTORY_BILL_LIST_CACHE, mBillList);
+    }
+
+    public void reset() {
+        if (getActivity() != null) {
+            mNumEdittext.getText().clear();
+            CommonUtil.editTextGetFocus(mNumEdittext);
+            CommonUtil.openKeybord(((EditText) mNumEdittext), mActivity);
+            if (progressDialog.isShowing())
+                progressDialog.dismiss();
+        }
+    }
+
+    /**
+     * 页面listview 设置适配器
+     */
+    private class AdapterListView extends ArrayAdapter<StorageInBillBean> {
+        private int resourceId;
+
+        public AdapterListView(Context context, int resource, List<StorageInBillBean> objects) {
+            super(context, resource, objects);
+            resourceId = resource;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            StorageInBillBean data = getItem(position);
+            convertView = LayoutInflater.from(getContext()).inflate(resourceId, null);
+
+            ((TextView) convertView.findViewById(R.id.item_inventory_bill_num_tv)).setText(data.getPI_INOUTNO());
+
+            return convertView;
+        }
+
+    }
+}

+ 588 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventoryCollectFragment.java

@@ -0,0 +1,588 @@
+package com.uas.zhongkelihan_devices_manager.fragment;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.table.TableData;
+import com.uas.zhongkelihan_devices_manager.R;
+import com.uas.zhongkelihan_devices_manager.activity.FunctionActivity;
+import com.uas.zhongkelihan_devices_manager.bean.CountingData;
+import com.uas.zhongkelihan_devices_manager.global.GloableParams;
+import com.uas.zhongkelihan_devices_manager.listener.MyEditorActionListener;
+import com.uas.zhongkelihan_devices_manager.util.CameraUtil;
+import com.uas.zhongkelihan_devices_manager.util.CommonUtil;
+import com.uas.zhongkelihan_devices_manager.util.FastjsonUtil;
+import com.uas.zhongkelihan_devices_manager.util.FragmentUtils;
+import com.uas.zhongkelihan_devices_manager.util.HttpCallback;
+import com.uas.zhongkelihan_devices_manager.util.HttpParams;
+import com.uas.zhongkelihan_devices_manager.util.VolleyRequest;
+import com.uas.zhongkelihan_devices_manager.view.ClearableEditText;
+import com.uuzuche.lib_zxing.activity.CaptureActivity;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2019/3/23
+ * Desc: 盘点采集页面
+ */
+public class InventoryCollectFragment extends BaseFragment implements View.OnClickListener {
+    private static final int SCAN_BARCODE_CODE = 101;
+    private ClearableEditText mTagEditText, mBarcodeEditText,cet_liaohao,cet_chuweibianhao;
+    private ImageView mScanImageView;
+    private TextView mResultTextView, mNumTextView, mClassTextView, tvPiInoutno;
+    private Button mMoreButton;
+    private PopupWindow mMenuPopupWindow;
+    private String pi_inoutno, pi_id, pi_class;
+    private CheckBox cb_caiji;
+    private boolean isChecked = false;
+
+    private SmartTable mSmartTable;
+    private Column<String> DE_CODE, DE_NAME, DE_CURRENTCENTERNAME, DE_MANAGEMAN,
+            DE_STOCKQTY, DE_CHECKQTY, DE_SPEC;
+
+    private Column<Long> mPosColumn;
+    private TableData<CountingData> mTableData;
+    private List<CountingData> mStockTaskMultipleBeans;
+    private CheckBox mCheckBox;
+    private String bar_remain;
+    private TextView tv_chaxun;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_inventory_collect;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("盘点作业");
+//        ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+
+        mMoreButton = mActivity.findViewById(R.id.btn_actionbar_more);
+        mTagEditText = root.findViewById(R.id.inventory_collect_tag_et);
+        mBarcodeEditText = root.findViewById(R.id.inventory_collect_barcode_et);
+        mScanImageView = root.findViewById(R.id.inventory_collect_scan_iv);
+        mResultTextView = root.findViewById(R.id.inventory_collect_result_tv);
+        mNumTextView = root.findViewById(R.id.inventory_collect_num_tv);
+        mClassTextView = root.findViewById(R.id.inventory_collect_class_tv);
+        cb_caiji = root.findViewById(R.id.cb_caiji);
+        tvPiInoutno = mActivity.findViewById(R.id.tv_pi_inoutno);
+        cet_liaohao = mActivity.findViewById(R.id.cet_liaohao);
+        cet_chuweibianhao = mActivity.findViewById(R.id.cet_chuweibianhao);
+        tv_chaxun = mActivity.findViewById(R.id.tv_chaxun);
+
+        mBarcodeEditText.requestFocus();
+
+        mCheckBox = root.findViewById(R.id.stock_data_summary_cb);
+        mSmartTable = root.findViewById(R.id.st_data);
+        CommonUtil.getDefaultTable(mActivity, mSmartTable);
+        mPosColumn = new Column<Long>("序号", "POS");
+        mPosColumn.setFixed(true);
+
+        DE_CODE = new Column<String>("设备编号", "DE_CODE");
+        DE_NAME = new Column<String>("设备名称", "DE_NAME");
+        DE_CURRENTCENTERNAME = new Column<String>("使用部门", "DE_CURRENTCENTERNAME");
+        DE_MANAGEMAN = new Column<String>("管理员", "DE_MANAGEMAN");
+        DE_STOCKQTY = new Column<String>("账面库存", "DE_STOCKQTY");
+        DE_CHECKQTY = new Column<String>("实盘库存", "DE_CHECKQTY");
+        DE_SPEC = new Column<String>("设备规格", "DE_SPEC");
+
+//        ST_WHCODE = new Column<String>("仓库", "ST_WHCODE");
+//        STD_PRODCODE = new Column<String>("料号", "STD_PRODCODE");
+//        PR_DETAIL = new Column<String>("名称", "PR_DETAIL");
+//        BAR_LOCATION = new Column<String>("储位", "BAR_LOCATION");
+//        STD_BATCHQTY = new Column<Double>("账面库存", "STD_BATCHQTY", new IFormat<Double>() {
+//            @Override
+//            public String format(Double aDouble) {
+//                return CommonUtil.doubleFormat(aDouble);
+//            }
+//        });
+//        STD_ACTQTY = new Column<Double>("实盘库存", "STD_ACTQTY", new IFormat<Double>() {
+//            @Override
+//            public String format(Double aDouble) {
+//                return CommonUtil.doubleFormat(aDouble);
+//            }
+//        });
+//        PR_SPEC = new Column<String>("规格", "PR_SPEC");
+
+    }
+
+    @Override
+    protected void initEvents() {
+        mMoreButton.setOnClickListener(this);
+        mScanImageView.setOnClickListener(this);
+        cb_caiji.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                InventoryCollectFragment.this.isChecked = isChecked;
+            }
+        });
+        //        mTagEditText.setOnFocusChangeListener(new View.OnFocusChangeListen) {
+        //            @Override
+        //            public void onFocusChange(View v, boolean hasFocus) {
+        //                if (!hasFocus) {
+        //                    String tag = mTagEditText.getText().toString().trim();
+        //                    SharedPreUtil.saveString(mActivity, Constants.FLAG.INVENTORY_DC_TIME_CACHE, tag);
+        //                }
+        //            }
+        //        });
+        //
+        //        CommonUtil.setEditorActionListener(mTagEditText, new MyEditorActionListener() {
+        //            @Override
+        //            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+        //                SharedPreUtil.saveString(mActivity, Constants.FLAG.INVENTORY_DC_TIME_CACHE, text);
+        //            }
+        //        });
+
+        CommonUtil.setEditorActionListener(mBarcodeEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                getBarcodedata();
+            }
+        });
+
+        mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                getDataList();
+            }
+        });
+
+        tv_chaxun.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getDataList();
+            }
+        });
+    }
+
+    private void getBarcodedata() {
+        String barcode = mBarcodeEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(barcode)) {
+            CommonUtil.toastNoRepeat(mActivity, "请采集条码");
+            return;
+        }
+        progressDialog.show();
+        if (isChecked) {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_BARSTOCK_GETBARCODEINFO)
+                    .method(Request.Method.GET)
+                    .tag(TAG + "getbarcodeinfo")
+                    .flag(0)
+                    .addParam("inoutno", pi_inoutno)
+                    //.addParam("deadline", deadLine)
+                    .addParam("barcode", barcode)
+                    .addParam("iscancel", isChecked + "")
+                    .addParam("prodcode", cet_liaohao.getText().toString().trim())
+                    .addParam("location", cet_chuweibianhao.getText().toString().trim())
+                    .build(), new HttpCallback() {
+                @Override
+                public void onSuccess(int flag, Object o) throws Exception {
+                    try {
+                        mBarcodeEditText.setText("");
+                        String result = o.toString();
+                        JSONObject resultObject = JSON.parseObject(result);
+                        JSONObject dataObject = resultObject.getJSONObject("data");
+                        if (dataObject != null) {
+                            String type = FastjsonUtil.getText(dataObject, "BI_TYPE");
+                            String prompt = "采集成功!";
+                            if (!"超期".equals(type)) {
+                                mResultTextView.setTextColor(mActivity.getResources().getColor(R.color.black));
+                                prompt = "采集成功!";
+                            } else {
+                                mResultTextView.setTextColor(mActivity.getResources().getColor(R.color.red));
+                                prompt = "采集成功!已超期";
+                            }
+                            mResultTextView.setVisibility(View.VISIBLE);
+                            mResultTextView.setText(prompt
+                                    + "\n设备名称:" + FastjsonUtil.getText(dataObject, "BI_PRODCODE")
+                                    //                                        + "\n品牌:" + FastjsonUtil.getText(dataObject, "BI_BRAND")
+                                    //                                        + "\nLOTNO:" + FastjsonUtil.getText(dataObject, "BI_LOTNO")
+                                    //                                        + "\nDC:" + FastjsonUtil.getText(dataObject, "BI_DATECODE")
+                                    + "\n型号:" + FastjsonUtil.getText(dataObject, "PR_ORISPECCODE")
+                                    + "\n设备编号:" + FastjsonUtil.getText(dataObject, "BI_BARCODE")
+                                    + "\n数量:" + FastjsonUtil.getText(dataObject, "BI_INQTY")
+                            );
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+
+                @Override
+                public void onFail(int flag, String failStr) throws Exception {
+                    mBarcodeEditText.setText("");
+                    progressDialog.dismiss();
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                    mResultTextView.setVisibility(View.VISIBLE);
+                    mResultTextView.setText(failStr);
+                }
+            });
+        } else {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_GET_BARCODE_DATA)
+                    .method(Request.Method.GET)
+                    .tag(TAG + "getbarcodeinfo")
+                    .flag(0)
+                    .addParam("barcode", barcode)
+                    .addParam("code", pi_inoutno)
+                    .build(), new HttpCallback() {
+                @Override
+                public void onSuccess(int flag, Object o) throws Exception {
+                    progressDialog.dismiss();
+                    bar_remain = "";
+                    try {
+                        String result = o.toString();
+                        JSONObject resultObject = JSON.parseObject(result);
+                        JSONObject dataObject = resultObject.getJSONObject("data");
+                        if (dataObject != null) {
+                            bar_remain = FastjsonUtil.getText(dataObject, "BAR_REMAIN");
+                        }
+
+                        setEnterNumber(barcode, bar_remain);
+
+//                        View dialogView = View.inflate(getActivity(), R.layout.dialog_confirm_quantity, null);
+//                        final EditText modifyEditText = dialogView.findViewById(R.id.recharge_modify_et);
+//
+//                        TextView tv_uninventoried_quantity = dialogView.findViewById(R.id.tv_uninventoried_quantity);
+//                        TextView tv_material_no = dialogView.findViewById(R.id.tv_material_no);
+//                        TextView tv_material_name = dialogView.findViewById(R.id.tv_material_name);
+//                        TextView tv_material_specification = dialogView.findViewById(R.id.tv_material_specification);
+//
+//                        tv_uninventoried_quantity.setText(FastjsonUtil.getText(dataObject, "UNQTY"));
+//                        tv_material_no.setText(FastjsonUtil.getText(dataObject, "BAR_PRODCODE"));
+//                        tv_material_name.setText(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+//                        tv_material_specification.setText(FastjsonUtil.getText(dataObject, "PR_SPEC"));
+//                        modifyEditText.setText(bar_remain);
+//                        modifyEditText.setSelection(modifyEditText.getText().length());
+//
+//                        alertDialog = new AlertDialog.Builder(getActivity())
+//                                .setTitle("确认数量")
+//                                .setNegativeButton(R.string.cancel, null)
+//                                .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
+//                                    @Override
+//                                    public void onClick(DialogInterface dialog, int which) {
+//                                        double quantity = 0;
+//                                        try {
+//                                            quantity = Double.parseDouble(TextUtils.isEmpty(modifyEditText.getText().toString().trim())?"0":modifyEditText.getText().toString().trim());
+//                                        } catch (Exception e) {
+//                                            CommonUtil.toastNoRepeat(getActivity(), "请输入正确的数字");
+//                                            return;
+//                                        }
+//                                        //setEnterNumber(barcode, modifyEditText);
+//                                    }
+//                                })
+//                                .setView(dialogView)
+//                                .create();
+//                        // 禁用屏幕外点击
+//                        alertDialog.setCancelable(false);
+//                        alertDialog.setCanceledOnTouchOutside(false);
+//                        alertDialog.show();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+
+                @Override
+                public void onFail(int flag, String failStr) throws Exception {
+                    mBarcodeEditText.setText("");
+                    progressDialog.dismiss();
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                    mResultTextView.setVisibility(View.VISIBLE);
+                    mResultTextView.setText(failStr);
+                }
+            });
+
+        }
+    }
+
+    private void setEnterNumber(String barcode, String bar_remain) {
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_BARSTOCK_GETBARCODEINFO)
+                .method(Request.Method.GET)
+                .tag(TAG + "getbarcodeinfo")
+                .flag(0)
+                .addParam("inoutno", pi_inoutno)
+                //.addParam("deadline", deadLine)
+                .addParam("barcode", barcode)
+                .addParam("iscancel", isChecked + "")
+                .addParam("bar_remain", bar_remain)
+                .addParam("prodcode", cet_liaohao.getText().toString().trim())
+                .addParam("location", cet_chuweibianhao.getText().toString().trim())
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mBarcodeEditText.setText("");
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONObject dataObject = resultObject.getJSONObject("data");
+                    if (dataObject != null) {
+                        String type = FastjsonUtil.getText(dataObject, "BI_TYPE");
+                        String prompt = "采集成功!";
+                        if (!"超期".equals(type)) {
+                            mResultTextView.setTextColor(mActivity.getResources().getColor(R.color.black));
+                            prompt = "采集成功!";
+                        } else {
+                            mResultTextView.setTextColor(mActivity.getResources().getColor(R.color.red));
+                            prompt = "采集成功!已超期";
+                        }
+
+                        mResultTextView.setVisibility(View.VISIBLE);
+                        mResultTextView.setText(prompt
+                                + "\n设备名称:" + FastjsonUtil.getText(dataObject, "BI_PRODCODE")
+                                //                                        + "\n品牌:" + FastjsonUtil.getText(dataObject, "BI_BRAND")
+                                //                                        + "\nLOTNO:" + FastjsonUtil.getText(dataObject, "BI_LOTNO")
+                                //                                        + "\nDC:" + FastjsonUtil.getText(dataObject, "BI_DATECODE")
+                                + "\n型号:" + FastjsonUtil.getText(dataObject, "PR_ORISPECCODE")
+                                + "\n设备编号:" + FastjsonUtil.getText(dataObject, "BI_BARCODE")
+                                + "\n数量:" + FastjsonUtil.getText(dataObject, "BI_INQTY")
+                        );
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                mBarcodeEditText.setText("");
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                mResultTextView.setVisibility(View.VISIBLE);
+                mResultTextView.setText(failStr);
+            }
+        });
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            pi_inoutno = bundle.getString("pi_inoutno");
+            pi_id = bundle.getString("pi_id");
+            pi_class = bundle.getString("pi_class");
+
+            mNumTextView.setText(pi_inoutno);
+//            mClassTextView.setText(pi_class);
+            mClassTextView.setText("设备盘点单");
+        }
+
+        //        String deadLine = SharedPreUtil.getString(mActivity, Constants.FLAG.INVENTORY_DC_TIME_CACHE, "");
+        //        if (!TextUtils.isEmpty(deadLine)) {
+        //            mTagEditText.setText(deadLine);
+        //            mBarcodeEditText.requestFocus();
+        //        } else {
+        //            mTagEditText.requestFocus();
+        //        }
+
+        if (pi_inoutno != null) {
+            tvPiInoutno.setText(pi_inoutno);
+        }
+
+        mStockTaskMultipleBeans = new ArrayList<>();
+        setTableData(mStockTaskMultipleBeans);
+        getDataList();
+    }
+
+    private void getDataList() {
+        progressDialog.show();
+        mStockTaskMultipleBeans.clear();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_GET_PRE_MATERIAL_LIST)
+                .method(Request.Method.POST)
+                .addParam("code", pi_id)
+                .addParam("showall", mCheckBox.isChecked() ? "-1" : "0")
+                .addParam("prodcode", cet_liaohao.getText().toString().trim())
+                .addParam("location", cet_chuweibianhao.getText().toString().trim())
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    com.alibaba.fastjson.JSONArray dataArray = resultObject.getJSONArray("data");
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+                                CountingData countingData = new CountingData();
+                                countingData.setDE_CODE(FastjsonUtil.getText(dataObject, "DE_CODE"));
+                                countingData.setDE_NAME(FastjsonUtil.getText(dataObject, "DE_NAME"));
+                                countingData.setDE_CURRENTCENTERNAME(FastjsonUtil.getText(dataObject, "DE_CURRENTCENTERNAME"));
+                                countingData.setDE_MANAGEMAN(FastjsonUtil.getText(dataObject, "DE_MANAGEMAN"));
+                                countingData.setDE_STOCKQTY(FastjsonUtil.getText(dataObject, "DE_STOCKQTY"));
+                                countingData.setDE_CHECKQTY(FastjsonUtil.getText(dataObject, "DE_CHECKQTY"));
+                                countingData.setDE_SPEC(FastjsonUtil.getText(dataObject, "DE_SPEC"));
+                                countingData.setPOS(i + 1);
+                                mStockTaskMultipleBeans.add(countingData);
+                            }
+                        }
+                    }
+                    setTableData(mStockTaskMultipleBeans);
+                } catch (Exception e) {
+                    setTableData(mStockTaskMultipleBeans);
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                setTableData(mStockTaskMultipleBeans);
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    private void setTableData(List<CountingData> filterTableData) {
+        mTableData = new TableData<CountingData>("出库单列表", filterTableData,
+                mPosColumn,DE_CODE,DE_NAME,DE_CURRENTCENTERNAME,DE_MANAGEMAN,DE_STOCKQTY,
+                DE_CHECKQTY,DE_SPEC);
+        mSmartTable.setTableData(mTableData);
+        mSmartTable.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mSmartTable.postInvalidate();
+            }
+        }, 100);
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.btn_actionbar_more:
+                showMoreMenu();
+                break;
+            case R.id.pop_inventory_collect_menu_1:
+                closeMenuPopupWindow();
+                Fragment fragment = new InventoryDetailListFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_inoutno", pi_inoutno);
+                bundle.putString("piid", pi_id);
+                fragment.setArguments(bundle);
+                FragmentUtils.switchFragment(this, fragment);
+                break;
+            case R.id.pop_inventory_collect_menu_2:
+                closeMenuPopupWindow();
+                fragment = new InventorySummaryListFragment();
+                bundle = new Bundle();
+                bundle.putString("pi_inoutno", pi_inoutno);
+                bundle.putString("piid", pi_id);
+                fragment.setArguments(bundle);
+                FragmentUtils.switchFragment(this, fragment);
+                break;
+            case R.id.inventory_collect_scan_iv:
+                if (CameraUtil.hasCamera()) {
+                    if (root.findFocus() != null) {
+                        Intent intent = new Intent();
+                        intent.setClass(mActivity, CaptureActivity.class);
+                        startActivityForResult(intent, SCAN_BARCODE_CODE);
+                    }
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
+                }
+                break;
+        }
+    }
+
+
+    /**
+     * 展示扩展菜单
+     */
+    private void showMoreMenu() {
+        View view = View.inflate(getActivity(), R.layout.pop_inventory_collect_menu, null);
+        Button detailBtn = (Button) view.findViewById(R.id.pop_inventory_collect_menu_1);
+        Button summaryBtn = (Button) view.findViewById(R.id.pop_inventory_collect_menu_2);
+
+        detailBtn.setOnClickListener(this);
+        summaryBtn.setOnClickListener(this);
+        detailBtn.setVisibility(View.GONE);
+
+        mMenuPopupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        mMenuPopupWindow.setBackgroundDrawable(new BitmapDrawable());
+        mMenuPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                closeMenuPopupWindow();
+            }
+        });
+        CommonUtil.setBackgroundAlpha(getActivity(), 0.5f);
+        mMenuPopupWindow.showAsDropDown(mMoreButton);
+    }
+
+    private void closeMenuPopupWindow() {
+        if (mMenuPopupWindow != null) {
+            mMenuPopupWindow.dismiss();
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (!hidden) {
+            ((FunctionActivity) getActivity()).setTitle("盘点作业");
+//            ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+            mBarcodeEditText.requestFocus();
+        } else {
+//            ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+        }
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode != Activity.RESULT_OK) {
+            return;
+        }
+        if (requestCode == SCAN_BARCODE_CODE && data != null) {
+            if (data.getExtras() != null) {
+                String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
+                mBarcodeEditText.setText(result);
+                mBarcodeEditText.setSelection(result.length());
+                if (result.length() > 13){
+                    getBarcodedata();
+                }
+            }
+        }
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+//        ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+    }
+}

+ 344 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventoryDetailListFragment.java

@@ -0,0 +1,344 @@
+package com.uas.zhongkelihan_devices_manager.fragment;
+
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.uas.zhongkelihan_devices_manager.R;
+import com.uas.zhongkelihan_devices_manager.activity.FunctionActivity;
+import com.uas.zhongkelihan_devices_manager.adapter.InventoryDetailAdapter;
+import com.uas.zhongkelihan_devices_manager.adapter.StorageSearchModeAdapter;
+import com.uas.zhongkelihan_devices_manager.bean.InventoryDetailBean;
+import com.uas.zhongkelihan_devices_manager.global.GloableParams;
+import com.uas.zhongkelihan_devices_manager.listener.MyEditorActionListener;
+import com.uas.zhongkelihan_devices_manager.util.CommonUtil;
+import com.uas.zhongkelihan_devices_manager.util.FastjsonUtil;
+import com.uas.zhongkelihan_devices_manager.util.HttpCallback;
+import com.uas.zhongkelihan_devices_manager.util.HttpParams;
+import com.uas.zhongkelihan_devices_manager.util.VolleyRequest;
+import com.uas.zhongkelihan_devices_manager.view.ClearableEditText;
+import com.uas.zhongkelihan_devices_manager.view.EmptyLayout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2019/3/23
+ * Desc: 盘点明细列表
+ */
+public class InventoryDetailListFragment extends BaseFragment implements View.OnClickListener, AdapterView.OnItemLongClickListener {
+    private PullToRefreshListView mRefreshListView;
+    private ClearableEditText mSearchEt;
+    private TextView mSearchBtn, mSearchModeView;
+    private EmptyLayout mEmptyLayout;
+    private int mPageIndex = 1, mPageSize = 20;
+    private String mKeyword = "", mPiId, pi_inoutno;
+    private Dialog mModeDialog;
+    private ListView mModeListView;
+    private List<String> mModeList;
+    private StorageSearchModeAdapter mModeAdapter;
+    private List<InventoryDetailBean> mInventoryDetailBeans;
+    private InventoryDetailAdapter mInventoryDetailAdapter;
+    private int mSelectionPosition = -1;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_inventory_detail_list;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("盘点明细");
+
+        mRefreshListView = root.findViewById(R.id.inventory_detail_list_lv);
+        mRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
+        mEmptyLayout = new EmptyLayout(mActivity, mRefreshListView.getRefreshableView());
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("数据为空");
+        mSearchEt = root.findViewById(R.id.inventory_detail_list_search_cet);
+        mSearchBtn = root.findViewById(R.id.inventory_detail_list_search_tv);
+        mSearchModeView = root.findViewById(R.id.inventory_detail_list_search_mode_tv);
+
+        View historyView = View.inflate(mActivity, R.layout.pop_storage_mode, null);
+        mModeListView = (ListView) historyView.findViewById(R.id.pop_ip_history_lv);
+        mModeList = new ArrayList<>();
+        mModeList.add("条码号");
+        mModeList.add("料号");
+        mModeAdapter = new StorageSearchModeAdapter(mActivity, mModeList);
+        mModeListView.setAdapter(mModeAdapter);
+
+        mModeDialog = new AlertDialog.Builder(mActivity).setView(historyView).create();
+
+        mInventoryDetailBeans = new ArrayList<>();
+        mInventoryDetailAdapter = new InventoryDetailAdapter(mActivity, mInventoryDetailBeans);
+        mRefreshListView.setAdapter(mInventoryDetailAdapter);
+    }
+
+    @Override
+    protected void initEvents() {
+        mRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                mPageIndex = 1;
+                getDataList();
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+                mPageIndex++;
+                getDataList();
+            }
+        });
+
+        mRefreshListView.getRefreshableView().setOnItemLongClickListener(this);
+
+        CommonUtil.setEditorActionListener(mSearchEt, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                mKeyword = text;
+                progressDialog.show();
+                mPageIndex = 1;
+                getDataList();
+            }
+        });
+
+        mSearchBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                mKeyword = mSearchEt.getText().toString().trim();
+                progressDialog.show();
+                mPageIndex = 1;
+                getDataList();
+            }
+        });
+
+        mSearchModeView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (mModeDialog != null) {
+                    mModeDialog.show();
+                }
+            }
+        });
+
+        mModeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+                mSearchModeView.setText(mModeList.get(i));
+                mModeDialog.dismiss();
+
+                mKeyword = mSearchEt.getText().toString().trim();
+                progressDialog.show();
+                mPageIndex = 1;
+                getDataList();
+            }
+        });
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle arguments = getArguments();
+        if (arguments != null) {
+            mPiId = arguments.getString("piid");
+            pi_inoutno = arguments.getString("pi_inoutno");
+        }
+
+        progressDialog.show();
+        getDataList();
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+        }
+    }
+
+    private void getDataList() {
+        String mode = mSearchModeView.getText().toString();
+        if ("条码号".equals(mode)) {
+            mode = "barcode";
+        } else if ("料号".equals(mode)) {
+            mode = "prod";
+        }
+
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_BARSTOCK_GETBARCODEDETAIL)
+                .method(Request.Method.GET)
+                .addParam("piid", mPiId)
+                .addParam("page", mPageIndex + "")
+                .addParam("pageSize", mPageSize + "")
+                .addParam("condition", mKeyword)
+                .addParam("kind", mode)
+                .flag(0)
+                .tag(TAG + "getbarcodedetail")
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                if (mRefreshListView.isRefreshing()) {
+                    mRefreshListView.onRefreshComplete();
+                }
+                try {
+                    analysisBarcodeDetail(o);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                if (mRefreshListView.isRefreshing()) {
+                    mRefreshListView.onRefreshComplete();
+                }
+                if (mPageIndex == 1) {
+                    mEmptyLayout.setErrorMessage(failStr);
+                    mEmptyLayout.showError();
+                } else {
+                    mPageIndex--;
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                }
+            }
+        });
+    }
+
+    private void analysisBarcodeDetail(Object o) {
+        if (mPageIndex == 1) {
+            mInventoryDetailBeans.clear();
+        }
+        String result = o.toString();
+        JSONObject resultObject = JSON.parseObject(result);
+        JSONArray dataArray = resultObject.getJSONArray("data");
+        if (dataArray != null) {
+            for (int i = 0; i < dataArray.size(); i++) {
+                JSONObject dataObject = dataArray.getJSONObject(i);
+                if (dataObject != null) {
+                    InventoryDetailBean detailBean = new InventoryDetailBean();
+
+                    detailBean.setBI_ID(FastjsonUtil.getLong(dataObject, "BI_ID"));
+                    detailBean.setBI_BARCODE(FastjsonUtil.getText(dataObject, "BI_BARCODE"));
+                    detailBean.setBI_CONTENT(FastjsonUtil.getText(dataObject, "BI_CONTENT"));
+                    detailBean.setBI_PRODCODE(FastjsonUtil.getText(dataObject, "BI_PRODCODE"));
+                    detailBean.setBI_INQTY(FastjsonUtil.getDouble(dataObject, "BI_INQTY"));
+                    detailBean.setBI_INOUTNO(FastjsonUtil.getText(dataObject, "BI_INOUTNO"));
+                    detailBean.setBI_WHCODE(FastjsonUtil.getText(dataObject, "BI_WHCODE"));
+                    detailBean.setBI_BRAND(FastjsonUtil.getText(dataObject, "BI_BRAND"));
+                    detailBean.setBI_ORDERCODE(FastjsonUtil.getText(dataObject, "BI_ORDERCODE"));
+                    detailBean.setBI_DATECODE(FastjsonUtil.getText(dataObject, "BI_DATECODE"));
+                    detailBean.setBI_LOTNO(FastjsonUtil.getText(dataObject, "BI_LOTNO"));
+                    detailBean.setPR_ORISPECCODE(FastjsonUtil.getText(dataObject, "PR_ORISPECCODE"));
+                    detailBean.setRN(FastjsonUtil.getInt(dataObject, "RN"));
+
+                    mInventoryDetailBeans.add(detailBean);
+                }
+            }
+
+            mInventoryDetailAdapter.notifyDataSetChanged();
+            if (mInventoryDetailBeans.size() == 0) {
+                mEmptyLayout.showEmpty();
+            }
+        } else {
+            if (mPageIndex == 1) {
+                mInventoryDetailAdapter.notifyDataSetChanged();
+                mEmptyLayout.showEmpty();
+            } else {
+                mPageIndex--;
+            }
+        }
+    }
+
+    @Override
+    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long id) {
+        mSelectionPosition = (int) adapterView.getItemIdAtPosition(position);
+        new AlertDialog.Builder(mActivity)
+                .setMessage("确定删除该条明细?")
+                .setNegativeButton(R.string.cancel, null)
+                .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialogInterface, int i) {
+                        dialogInterface.dismiss();
+                        progressDialog.show();
+                        deleteBarcode("", mInventoryDetailBeans.get(mSelectionPosition).getBI_ID() + "");
+                    }
+                }).create().show();
+        return true;
+    }
+
+    private void deleteBarcode(String type, String biid) {
+        String condition = mSearchEt.getText().toString().trim();
+        String mode = mSearchModeView.getText().toString();
+        if ("条码号".equals(mode)) {
+            mode = "barcode";
+        } else if ("料号".equals(mode)) {
+            mode = "prod";
+        }
+        String url = GloableParams.ADDRESS_BARSTOCK_DELETEBARCODEIO;
+
+        VolleyRequest.getInstance().stringRequest(
+                new HttpParams.Builder()
+                        .url(url)
+                        .method(Request.Method.POST)
+                        .flag(0)
+                        .tag(TAG + "deletebarcode")
+                        .addParam("piid", mPiId + "")
+                        .addParam("biid", biid)
+                        .build(), new HttpCallback() {
+                    @Override
+                    public void onSuccess(int flag, Object o) throws Exception {
+                        try {
+                            progressDialog.dismiss();
+                            if (mInventoryDetailBeans.size() > mSelectionPosition) {
+                                mInventoryDetailBeans.remove(mSelectionPosition);
+                                mInventoryDetailAdapter.notifyDataSetChanged();
+                            }
+                            if (mInventoryDetailBeans.size() == 0) {
+                                mEmptyLayout.showEmpty();
+                            }
+                            CommonUtil.toastNoRepeat(mActivity, "删除盘点明细成功!");
+                        } catch (Exception e) {
+
+                        }
+                    }
+
+                    @Override
+                    public void onFail(int flag, String failStr) throws Exception {
+                        progressDialog.dismiss();
+                        CommonUtil.toastNoRepeat(mActivity, failStr);
+                    }
+                });
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+    }
+}

+ 234 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/InventorySummaryListFragment.java

@@ -0,0 +1,234 @@
+package com.uas.zhongkelihan_devices_manager.fragment;
+
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.uas.zhongkelihan_devices_manager.R;
+import com.uas.zhongkelihan_devices_manager.activity.FunctionActivity;
+import com.uas.zhongkelihan_devices_manager.adapter.InventorySummaryAdapter;
+import com.uas.zhongkelihan_devices_manager.bean.InventorySummaryBean;
+import com.uas.zhongkelihan_devices_manager.global.GloableParams;
+import com.uas.zhongkelihan_devices_manager.listener.MyEditorActionListener;
+import com.uas.zhongkelihan_devices_manager.util.CommonUtil;
+import com.uas.zhongkelihan_devices_manager.util.FastjsonUtil;
+import com.uas.zhongkelihan_devices_manager.util.HttpCallback;
+import com.uas.zhongkelihan_devices_manager.util.HttpParams;
+import com.uas.zhongkelihan_devices_manager.util.VolleyRequest;
+import com.uas.zhongkelihan_devices_manager.view.ClearableEditText;
+import com.uas.zhongkelihan_devices_manager.view.EmptyLayout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2019/3/23
+ * Desc: 盘点汇总列表
+ */
+public class InventorySummaryListFragment extends BaseFragment implements View.OnClickListener {
+    private PullToRefreshListView mRefreshListView;
+    private ClearableEditText mSearchEt;
+    private TextView mSearchBtn, mSearchModeView;
+    private EmptyLayout mEmptyLayout;
+    private int mPageIndex = 1, mPageSize = 20;
+    private String mKeyword = "", mPiId, pi_inoutno;
+    private List<InventorySummaryBean> mInventorySummaryBeans;
+    private InventorySummaryAdapter mInventorySummaryAdapter;
+
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_inventory_huizong;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("盘点汇总");
+
+        mRefreshListView = root.findViewById(R.id.inventory_detail_list_lv);
+        mRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
+        mEmptyLayout = new EmptyLayout(mActivity, mRefreshListView.getRefreshableView());
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("数据为空");
+        mSearchEt = root.findViewById(R.id.inventory_detail_list_search_cet);
+        mSearchBtn = root.findViewById(R.id.inventory_detail_list_search_tv);
+        mSearchModeView = root.findViewById(R.id.inventory_detail_list_search_mode_tv);
+        mSearchModeView.setVisibility(View.GONE);
+
+        mInventorySummaryBeans = new ArrayList<>();
+        mInventorySummaryAdapter = new InventorySummaryAdapter(mActivity, mInventorySummaryBeans);
+        mRefreshListView.setAdapter(mInventorySummaryAdapter);
+    }
+
+    @Override
+    protected void initEvents() {
+        mRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                mPageIndex = 1;
+                getDataList();
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+                mPageIndex++;
+                getDataList();
+            }
+        });
+
+        CommonUtil.setEditorActionListener(mSearchEt, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                mKeyword = text;
+                progressDialog.show();
+                mPageIndex = 1;
+                getDataList();
+            }
+        });
+
+        mSearchBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                mKeyword = mSearchEt.getText().toString().trim();
+                progressDialog.show();
+                mPageIndex = 1;
+                getDataList();
+            }
+        });
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle arguments = getArguments();
+        if (arguments != null) {
+            mPiId = arguments.getString("piid");
+            pi_inoutno = arguments.getString("pi_inoutno");
+        }
+
+        progressDialog.show();
+        getDataList();
+    }
+
+
+    private void getDataList() {
+
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_BARSTOCK_GETPRODINOUTQTYSUM)
+                .method(Request.Method.GET)
+                .addParam("piid", mPiId)
+                .addParam("page", mPageIndex + "")
+                .addParam("pageSize", mPageSize + "")
+                .addParam("condition", mKeyword)
+                .flag(0)
+                .tag(TAG + "getbarcodedetail")
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                if (mRefreshListView.isRefreshing()) {
+                    mRefreshListView.onRefreshComplete();
+                }
+                try {
+                    analysisBarcodeDetail(o);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                if (mRefreshListView.isRefreshing()) {
+                    mRefreshListView.onRefreshComplete();
+                }
+                if (mPageIndex == 1) {
+                    mEmptyLayout.setErrorMessage(failStr);
+                    mEmptyLayout.showError();
+                } else {
+                    mPageIndex--;
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                }
+            }
+        });
+    }
+
+    private void analysisBarcodeDetail(Object o) {
+        if (mPageIndex == 1) {
+            mInventorySummaryBeans.clear();
+        }
+        String result = o.toString();
+        JSONObject resultObject = JSON.parseObject(result);
+        JSONArray dataArray = resultObject.getJSONArray("data");
+        if (dataArray != null) {
+            for (int i = 0; i < dataArray.size(); i++) {
+                JSONObject dataObject = dataArray.getJSONObject(i);
+                if (dataObject != null) {
+                    InventorySummaryBean summaryBean = new InventorySummaryBean();
+
+                    summaryBean.setBI_INQTY(FastjsonUtil.getDouble(dataObject, "BI_INQTY"));
+                    summaryBean.setBI_PRODCODE(FastjsonUtil.getText(dataObject, "BI_PRODCODE"));
+                    summaryBean.setBI_INOUTNO(FastjsonUtil.getText(dataObject, "BI_INOUTNO"));
+                    summaryBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+                    summaryBean.setPR_SPEC(FastjsonUtil.getText(dataObject, "PR_SPEC"));
+                    summaryBean.setBi_whcode(FastjsonUtil.getText(dataObject, "BI_WHCODE"));
+                    summaryBean.setBI_BRAND(FastjsonUtil.getText(dataObject, "BI_BRAND"));
+                    summaryBean.setBI_PIID(FastjsonUtil.getLong(dataObject, "BI_PIID"));
+                    summaryBean.setRN(FastjsonUtil.getInt(dataObject, "RN"));
+
+                    mInventorySummaryBeans.add(summaryBean);
+                }
+            }
+
+            mInventorySummaryAdapter.notifyDataSetChanged();
+            if (mInventorySummaryBeans.size() == 0) {
+                mEmptyLayout.showEmpty();
+            }
+        } else {
+            if (mPageIndex == 1) {
+                mInventorySummaryAdapter.notifyDataSetChanged();
+                mEmptyLayout.showEmpty();
+            } else {
+                mPageIndex--;
+            }
+        }
+    }
+
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+
+        }
+    }
+
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+    }
+}

+ 64 - 64
app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/MaintenanceManagementListFragment.java

@@ -36,6 +36,7 @@ import com.uas.zhongkelihan_devices_manager.R;
 import com.uas.zhongkelihan_devices_manager.activity.FunctionActivity;
 import com.uas.zhongkelihan_devices_manager.bean.MessageOutboundEvents;
 import com.uas.zhongkelihan_devices_manager.bean.OutboundListBean;
+import com.uas.zhongkelihan_devices_manager.camera.CaptureActivity;
 import com.uas.zhongkelihan_devices_manager.global.GloableParams;
 import com.uas.zhongkelihan_devices_manager.tools.SharedPreUtil;
 import com.uas.zhongkelihan_devices_manager.util.CameraUtil;
@@ -47,7 +48,6 @@ import com.uas.zhongkelihan_devices_manager.util.HttpCallback;
 import com.uas.zhongkelihan_devices_manager.util.HttpParams;
 import com.uas.zhongkelihan_devices_manager.util.VolleyRequest;
 import com.uas.zhongkelihan_devices_manager.view.ClearableEditText;
-import com.uas.zhongkelihan_devices_manager.camera.CaptureActivity;
 import com.uuzuche.lib_zxing.activity.CodeUtils;
 
 import org.greenrobot.eventbus.EventBus;
@@ -67,7 +67,7 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
     private Fragment mFragment;
     private RefreshLayout mRefreshLayout;
     private SmartTable mSmartTable;
-    private Column<String> va_classColumn,va_codeColumn,va_statusColumn,va_vendnameColumn,va_vendcodeColumn;
+    private Column<String> DC_CODE, DC_INDATE, DC_STATUS, DC_INMAN;
     private TableData<OutboundListBean> mTableData;
     private int mPageIndex = 1, mPageSize = 20;
     private List<OutboundListBean> mFilterStorageInBeans;
@@ -84,7 +84,7 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
 
     @Override
     protected void initViews() {
-        FunctionActivity.setTitle(getString(R.string.main_list));
+        FunctionActivity.setTitle("设备校准申请");
         ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
         ((FunctionActivity) getActivity()).setListIconIvVisible(false);
         storage_recharge_collect_et = mActivity.findViewById(R.id.storage_recharge_collect_et);
@@ -93,12 +93,11 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
         mScanImageView = (ImageView) mActivity.findViewById(R.id.storage_recharge_scan_iv);
         mMenuButton = (Button) mActivity.findViewById(R.id.btn_actionbar_more);
 
-
+        storage_recharge_collect_et.requestFocus();
     }
 
     @Override
     protected void initEvents() {
-        storage_recharge_collect_et.requestFocus();
         storage_recharge_collect_et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
             @Override
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
@@ -112,10 +111,22 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
                 return false;
             }
         });
-        mFilterStorageInBeans = Collections.synchronizedList(new ArrayList<>());
 
-        initPopupWindow();
-        getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
+        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+            @Override
+            public void onRefresh(RefreshLayout refreshLayout) {
+                mPageIndex = 1;
+                getDatalistCodes("");
+            }
+        });
+
+        mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+            @Override
+            public void onLoadMore(RefreshLayout refreshLayout) {
+                mPageIndex++;
+                getDatalistCodes("");
+            }
+        });
     }
 
     @Override
@@ -146,43 +157,28 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
                     }
                 });
 
+        DC_CODE = new Column<String>("单据编号", "DC_CODE");
+        DC_CODE.setFixed(true);
+        DC_INDATE = new Column<String>("日期", "DC_INDATE");
+        DC_STATUS = new Column<String>("状态", "DC_STATUS");
+        DC_INMAN = new Column<String>("录入人", "DC_INMAN");
 
+        DC_CODE.setOnColumnItemClickListener(this);
+        DC_INDATE.setOnColumnItemClickListener(this);
+        DC_STATUS.setOnColumnItemClickListener(this);
+        DC_INMAN.setOnColumnItemClickListener(this);
 
-        va_classColumn = new Column<String>("单据编号", "DC_CODE");
-        va_classColumn.setFixed(true);
-        va_codeColumn = new Column<String>("日期", "DC_INDATE");
-        va_statusColumn = new Column<String>("状态", "DC_STATUS");
-        va_vendnameColumn = new Column<String>("设备编号", "DC_DEVCODE");
-        va_vendcodeColumn = new Column<String>("名称", "DC_DEVNAME");
-        va_vendcodeColumn = new Column<String>("线别", "DC_LINECODE");
-
-        va_classColumn.setOnColumnItemClickListener(this);
-        va_codeColumn.setOnColumnItemClickListener(this);
-        va_statusColumn.setOnColumnItemClickListener(this);
-        va_vendnameColumn.setOnColumnItemClickListener(this);
-        va_vendcodeColumn.setOnColumnItemClickListener(this);
         mScanImageView.setOnClickListener(this);
         mMenuButton.setOnClickListener(this);
 
-        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
-            @Override
-            public void onRefresh(RefreshLayout refreshLayout) {
-                mPageIndex = 1;
-                getDatalistCodes("");
-            }
-        });
+        mFilterStorageInBeans = Collections.synchronizedList(new ArrayList<>());
 
-        mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
-            @Override
-            public void onLoadMore(RefreshLayout refreshLayout) {
-                mPageIndex++;
-                getDatalistCodes("");
-            }
-        });
+        initPopupWindow();
+        getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
 
-//        ceshiData();
     }
-    private void getDatalistCodes(String pi_inoutno){
+
+    private void getDatalistCodes(String pi_inoutno) {
         String em_name = SharedPreUtil.getString(mActivity, Constants.FLAG.CACHE_USER_EMNAME, null);
         String em_code = SharedPreUtil.getString(mActivity, Constants.FLAG.CACHE_USER_EMCODE, null);
         VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
@@ -190,12 +186,12 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
                 .method(Request.Method.GET)
                 .tag(TAG + "getindatalist")
                 .flag(0)
-                .addParam("em_code",em_code)
-                .addParam("em_name",em_name)
-                .addParam("code",pi_inoutno)
-                .addParam("caller","DeviceChange!Use")
-                .addParam("page",mPageIndex+"")
-                .addParam("pageSize",mPageSize+"")
+                .addParam("em_code", em_code)
+                .addParam("em_name", em_name)
+                .addParam("code", pi_inoutno)
+                .addParam("caller", "DeviceChange!Use")
+                .addParam("page", mPageIndex + "")
+                .addParam("pageSize", mPageSize + "")
                 .build(), new HttpCallback() {
             @Override
             public void onSuccess(int flag, Object o) throws Exception {
@@ -205,20 +201,18 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
                     String result = o.toString();
                     JSONObject resultObject = JSON.parseObject(result);
                     JSONArray dataArray = resultObject.getJSONArray("items");
-                    List<OutboundListBean> list=new ArrayList<>();
+                    List<OutboundListBean> list = new ArrayList<>();
                     list.clear();
                     if (dataArray != null && dataArray.size() > 0) {
                         for (int i = 0; i < dataArray.size(); i++) {
                             JSONObject dataObject = dataArray.getJSONObject(i);
                             if (dataObject != null) {
                                 OutboundListBean jltStorageInBean = new OutboundListBean();
-                                jltStorageInBean.setDC_ID(FastjsonUtil.getText(dataObject, "DC_ID"));
+//                                jltStorageInBean.setDC_ID(FastjsonUtil.getText(dataObject, "DC_ID"));
                                 jltStorageInBean.setDC_CODE(FastjsonUtil.getText(dataObject, "DC_CODE"));
-                                jltStorageInBean.setDC_DEVCODE(FastjsonUtil.getText(dataObject, "DC_DEVCODE"));
-                                jltStorageInBean.setDC_DEVNAME(FastjsonUtil.getText(dataObject, "DC_DEVNAME"));
                                 jltStorageInBean.setDC_INDATE(FastjsonUtil.getText(dataObject, "DC_INDATE"));
-                                jltStorageInBean.setDC_LINECODE(FastjsonUtil.getText(dataObject, "DC_LINECODE"));
-                                jltStorageInBean.setDC_STATUS(FastjsonUtil.getText(dataObject, "DC_STATUS"));;
+                                jltStorageInBean.setDC_STATUS(FastjsonUtil.getText(dataObject, "DC_STATUS"));
+                                jltStorageInBean.setDC_INMAN(FastjsonUtil.getText(dataObject, "DC_INMAN"));
                                 list.add(jltStorageInBean);
                             }
                         }
@@ -259,9 +253,9 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
 
     private void setFilterTableData(List<OutboundListBean> filterTableData) {
         mTableData = new TableData<OutboundListBean>("收料单列表", filterTableData,
-                va_classColumn,va_codeColumn,va_statusColumn,va_vendnameColumn,va_vendcodeColumn);
+                DC_CODE, DC_INDATE, DC_STATUS, DC_INMAN);
         mSmartTable.setTableData(mTableData);
-//        mSmartTable.requestLayout();
+        //        mSmartTable.requestLayout();
         mSmartTable.postDelayed(new Runnable() {
             @Override
             public void run() {
@@ -270,11 +264,16 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
         }, 100);
 
     }
+
     private void initPopupWindow() {
         View view = View.inflate(getActivity(), R.layout.pop_outboundlist_out_menu, null);
         bt_add = (Button) view.findViewById(R.id.bt_add);
-        mFragment = new RequisitionTransferFragment();
-
+        //        mFragment = new RequisitionTransferFragment();
+        mFragment = new NewBePutInStorageOrderDetailFragment();
+        Bundle bundle = new Bundle();
+        bundle.putString("dc_code", "");
+        bundle.putString("dc_id", "");
+        mFragment.setArguments(bundle);
         bt_add.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -283,8 +282,6 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
             }
         });
 
-
-
         mMenuPopupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
         mMenuPopupWindow.setBackgroundDrawable(new BitmapDrawable());
         mMenuPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@@ -294,17 +291,17 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
             }
         });
     }
+
     private void closeMenuPopupWindow() {
         if (mMenuPopupWindow != null) {
             mMenuPopupWindow.dismiss();
             CommonUtil.setBackgroundAlpha(mActivity, 1f);
         }
     }
-//    @Subscribe
-//    public void onMessageEvent(MessageOutboundEvents event) {
-//        getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
-//    }
-
+    //    @Subscribe
+    //    public void onMessageEvent(MessageOutboundEvents event) {
+    //        getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
+    //    }
 
 
     @Override
@@ -316,6 +313,7 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
     public boolean onFragmentBackPressed() {
         return false;
     }
+
     @Override
     public void onHiddenChanged(boolean hidden) {
         super.onHiddenChanged(hidden);
@@ -323,7 +321,7 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
             ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
             ((FunctionActivity) getActivity()).setListIconIvVisible(false);
         } else {
-            FunctionActivity.setTitle(getString(R.string.main_list));
+            FunctionActivity.setTitle("设备校准申请");
             ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
             ((FunctionActivity) getActivity()).setListIconIvVisible(false);
         }
@@ -335,14 +333,15 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
         String dc_id = mFilterStorageInBeans.get(position).getDC_ID();
         String dc_devcode = mFilterStorageInBeans.get(position).getDC_DEVCODE();
         String dc_status = mFilterStorageInBeans.get(position).getDC_STATUS();
-        RequisitionTransferFragment outboundListAdd_fragment = new RequisitionTransferFragment();
+
+        NewBePutInStorageOrderDetailFragment newBePutInStorageOrderDetailFragment = new NewBePutInStorageOrderDetailFragment();
         Bundle bundle = new Bundle();
         bundle.putString("dc_code", dc_code);
         bundle.putString("dc_id", dc_id);
         bundle.putString("dc_devcode", dc_devcode);
         bundle.putString("dc_status", dc_status);
-        outboundListAdd_fragment.setArguments(bundle);
-        FragmentUtils.switchFragment(MaintenanceManagementListFragment.this, outboundListAdd_fragment);
+        newBePutInStorageOrderDetailFragment.setArguments(bundle);
+        FragmentUtils.switchFragment(MaintenanceManagementListFragment.this, newBePutInStorageOrderDetailFragment);
     }
 
     @Override
@@ -358,6 +357,7 @@ public class MaintenanceManagementListFragment extends BaseFragment implements O
     public void onMessageEvent(MessageOutboundEvents event) {
         getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
     }
+
     @Override
     public void onClick(View v) {
         switch (v.getId()) {

+ 351 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/NewBePutInStorageOrderDetailFragment.java

@@ -0,0 +1,351 @@
+package com.uas.zhongkelihan_devices_manager.fragment;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.content.ContextCompat;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.CheckBox;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.CellInfo;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
+import com.bin.david.form.data.style.FontStyle;
+import com.bin.david.form.data.table.TableData;
+import com.uas.zhongkelihan_devices_manager.R;
+import com.uas.zhongkelihan_devices_manager.bean.ReceiptDetails;
+import com.uas.zhongkelihan_devices_manager.global.GloableParams;
+import com.uas.zhongkelihan_devices_manager.util.CommonUtil;
+import com.uas.zhongkelihan_devices_manager.util.FastjsonUtil;
+import com.uas.zhongkelihan_devices_manager.util.HttpCallback;
+import com.uas.zhongkelihan_devices_manager.util.HttpParams;
+import com.uas.zhongkelihan_devices_manager.util.JsonUtils;
+import com.uas.zhongkelihan_devices_manager.util.MyLog;
+import com.uas.zhongkelihan_devices_manager.util.VolleyRequest;
+import com.uas.zhongkelihan_devices_manager.view.ClearableEditText;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Created by cjh-sail on 2023-02-23
+ */
+public class NewBePutInStorageOrderDetailFragment extends BaseFragment{
+
+    private TextView tv_pi_inoutno;
+    private SmartTable mSmartTable;
+    private String dc_code;
+    private Column<String> SN,DE_CODE, DE_NAME, DE_SPEC, DE_RUNSTATUS, DE_KIND, DE_CURRENTCENTERNAME,
+        DE_MANAGEMAN,DE_STARTDATE;
+    private TableData<ReceiptDetails> mTableData;
+    private List<ReceiptDetails> mFilterStorageInBeans;
+    private ClearableEditText jlt_storage_in_barcode_barcode_et;
+    private CheckBox ck_cancel;
+
+    private TextView tv_hint;
+    private TextView tv_qty;
+    private TextView tv_submint;
+
+    private String dc_id;
+
+
+    @Override
+    protected int getLayout() {
+        return R.layout.newbeputinstorageorderdetail_fragment;
+    }
+
+    @Override
+    protected void initViews() {
+        setTitle("校准设备清单");
+        tv_pi_inoutno = root.findViewById(R.id.tv_pi_inoutno);
+        mSmartTable = root.findViewById(R.id.jlt_storage_in_filter_list_st);
+        jlt_storage_in_barcode_barcode_et = root.findViewById(R.id.jlt_storage_in_barcode_barcode_et);
+        ck_cancel = root.findViewById(R.id.ck_cancel);
+        tv_hint = root.findViewById(R.id.tv_hint);
+        tv_qty = root.findViewById(R.id.tv_qty);
+        tv_submint = root.findViewById(R.id.tv_submint);
+
+        SN = new Column<String>("序号", "SN");
+        DE_CODE = new Column<String>("设备编号", "DE_CODE");
+        DE_NAME = new Column<String>("设备名称", "DE_NAME");
+        DE_SPEC = new Column<String>("规格", "DE_SPEC");
+        DE_RUNSTATUS = new Column<String>("运行状态", "DE_RUNSTATUS");
+        DE_KIND = new Column<String>("类别", "DE_KIND");
+        DE_CURRENTCENTERNAME = new Column<String>("当前使用部门", "DE_CURRENTCENTERNAME");
+        DE_MANAGEMAN = new Column<String>("设备管理员", "DE_MANAGEMAN");
+        DE_STARTDATE = new Column<String>("启动日期", "DE_STARTDATE");
+
+        SN.setFixed(true);
+        DE_CODE.setFixed(true);
+
+        mFilterStorageInBeans = new ArrayList<>();
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
+                .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                    @Override
+                    public int getBackGroundColor(CellInfo cellInfo) {
+                        if (cellInfo.row % 2 == 0) {
+                            return ContextCompat.getColor(mActivity, R.color.blue_50);
+                        }
+                        return TableConfig.INVALID_COLOR;
+                    }
+                });
+    }
+
+    @Override
+    protected void initEvents() {
+        jlt_storage_in_barcode_barcode_et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if (actionId == EditorInfo.IME_ACTION_DONE
+                        || actionId == EditorInfo.IME_ACTION_SEND
+                        || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
+                    String input = jlt_storage_in_barcode_barcode_et.getText().toString().trim();
+                    getmakeInWarhouse(input);
+                    return true;
+                }
+                return false;
+            }
+        });
+
+        tv_submint.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getSubmint();
+            }
+        });
+    }
+
+    private void getSubmint() {
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_SUBMIT_DEVICE_CHANGE)
+                .method(Request.Method.POST)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("id",dc_id)
+                .addParam("caller","DeviceLend")
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                String result = o.toString();
+                Log.e("result",result);
+                CommonUtil.toastNoRepeat(mActivity, "提交成功");
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            dc_code = bundle.getString("dc_code");
+            dc_id = bundle.getString("dc_id");
+        }
+        tv_pi_inoutno.setText(dc_code);
+
+        if (TextUtils.isEmpty(dc_code)) {
+            getDcCode();
+        }else {
+            getCollectList();
+        }
+    }
+
+    private void getDcCode() {
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_GET_DEVICE_CHANGE_CODE)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("caller","DeviceLend")
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mFilterStorageInBeans.clear();
+                    String result = o.toString();
+                    org.json.JSONObject js = new org.json.JSONObject(result);
+                    org.json.JSONObject items = js.getJSONObject("items");
+                    String code = JsonUtils.optStringNotNull(items,"code");
+                    dc_code = code;
+                    tv_pi_inoutno.setText(dc_code);
+                    MyLog.e("aaa","获取到的dc_code的值是:" + code);
+                    getCollectList();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                setFilterTableData(mFilterStorageInBeans);
+            }
+        });
+    }
+
+    public void getCollectList(){
+        if (TextUtils.isEmpty(dc_code)) {
+            CommonUtil.toastNoRepeat(mActivity, "单据编号不能为空");
+            return;
+        }
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_GET_DEVICELIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("dc_code",dc_code)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mFilterStorageInBeans.clear();
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("items");
+                    List<ReceiptDetails> list=new ArrayList<>();
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+                                dc_id = FastjsonUtil.getText(dataObject, "DC_ID");
+
+                                ReceiptDetails receiptDetails = new ReceiptDetails();
+                                receiptDetails.setDE_CODE(FastjsonUtil.getText(dataObject, "DE_CODE"));
+                                receiptDetails.setDE_NAME(FastjsonUtil.getText(dataObject, "DE_NAME"));
+                                receiptDetails.setDE_SPEC(FastjsonUtil.getText(dataObject, "DE_SPEC"));
+                                receiptDetails.setDE_RUNSTATUS(FastjsonUtil.getText(dataObject, "DE_RUNSTATUS"));
+                                receiptDetails.setDE_KIND(FastjsonUtil.getText(dataObject, "DE_KIND"));
+                                receiptDetails.setDE_CURRENTCENTERNAME(FastjsonUtil.getText(dataObject, "DE_CURRENTCENTERNAME"));
+                                receiptDetails.setDE_STARTDATE(FastjsonUtil.getText(dataObject, "DE_STARTDATE"));
+                                receiptDetails.setDE_MANAGEMAN(FastjsonUtil.getText(dataObject, "DE_MANAGEMAN"));
+                                receiptDetails.setSN(i+1);
+                                list.add(receiptDetails);
+                            }
+                        }
+                    }
+                    mFilterStorageInBeans = list;//PI_INOUTNO
+                    setFilterTableData(mFilterStorageInBeans);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                setFilterTableData(mFilterStorageInBeans);
+            }
+        });
+    }
+
+    public void getmakeInWarhouse(String input){
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_SAVE_DEVICE_ALIGN)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("dc_code",dc_code)
+                .addParam("de_code",input)
+                .addParam("ifCancel",ck_cancel.isChecked()?"-1":"0")
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+
+                String result = o.toString();
+                Log.e("result",result);
+                JSONObject resultObject = JSON.parseObject(result);
+                String data = FastjsonUtil.getText(resultObject, "data");
+                tv_hint.setTextColor(getResources().getColor(R.color.green));
+                tv_hint.setText(data);
+                getCollectList();
+                jlt_storage_in_barcode_barcode_et.setText("");
+                jlt_storage_in_barcode_barcode_et.requestFocus();
+//                if (dataObject != null) {
+//                    String lotno = FastjsonUtil.getText(dataObject, "LOTNO");
+//                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                tv_hint.setTextColor(getResources().getColor(R.color.red));
+                tv_hint.setText(failStr);
+                jlt_storage_in_barcode_barcode_et.setText("");
+                jlt_storage_in_barcode_barcode_et.requestFocus();
+            }
+        });
+    }
+
+    private void setFilterTableData(List<ReceiptDetails> filterTableData) {
+        mTableData = new TableData<ReceiptDetails>("入库单列表", filterTableData,
+                SN,DE_CODE, DE_NAME, DE_SPEC, DE_RUNSTATUS, DE_KIND, DE_CURRENTCENTERNAME,DE_MANAGEMAN,DE_STARTDATE);
+        tv_qty.setText("行数:"+filterTableData.size());
+        mSmartTable.setTableData(mTableData);
+//        mSmartTable.requestLayout();
+        new Handler().postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    mSmartTable.postInvalidate();
+                }
+            }, 100);
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (!hidden) {
+            setTitle("入库详情");
+        }
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+}

+ 0 - 33
app/src/main/java/com/uas/zhongkelihan_devices_manager/fragment/VersionUpgradeFragment.java

@@ -155,37 +155,6 @@ public class VersionUpgradeFragment extends BaseFragment implements ProgressResp
     private void getNewVersionMsg() {
         progressDialog.show();
 
-//        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
-//                .url(GloableParams.ADDRESS_OUTMATERIAL_GETPDAVERSION)
-//                .method(Request.Method.GET)
-//                .addParam("code", "UAS_SMART")
-//                .build(), new HttpCallback() {
-//            @Override
-//            public void onSuccess(int flag, Object o) throws Exception {
-//                progressDialog.dismiss();
-//                String result = o.toString();
-//                JSONObject resultObject = JSON.parseObject(result);
-//                JSONObject dataObject = resultObject.getJSONObject("data");
-//                if (dataObject != null) {
-//                    mNewVersionTv.setText(FastjsonUtil.getText(dataObject, "pp_versionname"));
-//                    mMsgTextView.setText(FastjsonUtil.getText(dataObject, "pp_remark"));
-//
-//                    mAttachId = FastjsonUtil.getText(dataObject, "pp_attach");
-//                    if (!TextUtils.isEmpty(mAttachId)) {
-//                        mUpgradeButton.setVisibility(View.VISIBLE);
-//                    } else {
-//                        mUpgradeButton.setVisibility(View.VISIBLE);
-//                    }
-//                }
-//            }
-//
-//            @Override
-//            public void onFail(int flag, String failStr) throws Exception {
-//                progressDialog.dismiss();
-//                CommonUtil.toastNoRepeat(mActivity, failStr);
-//            }
-//        });
-
         VollyRequest.getInstance().stringRequest(mStringRequest,
                 new HttpParams.Builder()
                       .url(GloableParams.ADDRESS_OUTMATERIAL_GETPDAVERSION)
@@ -260,7 +229,6 @@ public class VersionUpgradeFragment extends BaseFragment implements ProgressResp
                         CommonUtil.toastNoRepeat(mActivity, failStr);
                     }
                 });
-
     }
 
     @Override
@@ -288,7 +256,6 @@ public class VersionUpgradeFragment extends BaseFragment implements ProgressResp
         }
     }
 
-
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {

+ 76 - 5
app/src/main/java/com/uas/zhongkelihan_devices_manager/global/GloableParams.java

@@ -330,7 +330,27 @@ public class GloableParams {
     public static String ASTATIONTHE_SELECT_COMMIT;
     public static String ASTATIONTHE_SELECT_AUDIT;
     public static String ADD_GET_PERSONNEL_ID;        //获取人员编号接口
-    public static String ADD_UPLOAD_ATTACHS;        //送修单--上传附件
+
+    //盘点作业
+    public static String ADDRESS_BARSTOCK_FUZZYSEARCH;
+    public static String ADDRESS_BARSTOCK_GETSTOCKCHECKS;
+    public static String ADDRESS_BARSTOCK_GETBARCODEDETAIL;
+    public static String ADDRESS_BARSTOCK_DELETEBARCODEIO;
+    public static String ADDRESS_BARSTOCK_GETPRODINOUTQTYSUM;
+    public static String ADDRESS_BARSTOCK_GETBARCODEINFO;
+
+    //入库明细
+    public static String ADDRESS_GET_DEVICELIST;    //入库明细-->表格
+    public static String ADDRESS_SAVE_DEVICE_ALIGN;    //入库明细-->条码号enter
+
+    public static String ADDRESS_GET_BARCODE_DATA;
+    public static String ADDRESS_GET_PRE_MATERIAL_LIST;
+
+    //获取单据编号
+    public static String ADDRESS_GET_DEVICE_CHANGE_CODE;
+
+    //设备校准清单 -- > 提交
+    public static String ADDRESS_SUBMIT_DEVICE_CHANGE;
 
     /**
      * 新版设备管理
@@ -356,6 +376,35 @@ public class GloableParams {
     //人员编号
     public static String ADDRESSTAIL_GET_PERSONNEL_ID="/api/pda/spm/getEmployee.action";
 
+    /**
+     * 盘点工作
+     */
+    private static final String ADDRESSTAIL_BARSTOCK_FUZZYSEARCH = "/api/pda/barStock/fuzzySearch.action";
+    private static final String ADDRESSTAIL_BARSTOCK_GETSTOCKCHECKS = "/api/pda/barStock/getStockChecks.action";
+    private static final String ADDRESSTAIL_BARSTOCK_GETBARCODEDETAIL = "/api/pda/barStock/getBarcodeDetail.action";
+    private static final String ADDRESSTAIL_BARSTOCK_GETBARCODEINFO = "/api/pda/barStock/getBarcodeInfo.action";
+    private static final String ADDRESSTAIL_BARSTOCK_DELETEBARCODEIO = "/api/pda/barStock/deleteBarcodeIo.action";
+    private static final String ADDRESSTAIL_BARSTOCK_GETPRODINOUTQTYSUM = "/api/pda/barStock/getProdInoutQtySum.action";
+
+    //入库明细-->表格
+    private static final String ADDRESSTAIL_GET_DEVICELIST = "/oa/device/getDeviceList.action";
+    //入库明细-->条码号enter
+    private static final String ADDRESSTAIL_SAVE_DEVICE_ALIGN = "/oa/device/saveDeviceAlign.action";
+
+    //盘点作业 --> 修改数量弹窗
+    private static final String ADDRESSTAIL_GET_BARCODE_DATA = "/api/pda/outMaterial/getBarcodeData.action";
+    //盘点作业-->查询按钮
+    private static final String ADDRESSTAIL_GET_PRE_MATERIAL_LIST = "/api/pda/outMaterial/getStockMaterialList.action";
+
+    //获取单据编号
+    private static final String ADDRESSTAIL_GET_DEVICE_CHANGE_CODE = "/oa/device/getDeviceChangeCode.action";
+
+    //校准设备清单
+    private static final String ADDRESSTAIL_SUBMIT_DEVICE_CHANGE = "/oa/device/submitDeviceChange.action";
+
+
+
+
     /**
      * 高登
      */
@@ -960,24 +1009,28 @@ public class GloableParams {
     public static final String WAREHOUSINGMANAGEMENT = "扫一扫";
     public static final String HOME_QUALITY_MANAGE = "养护管理";
     public static final String TEXT_FAULT_INSPECTION = "故障送检";
-    public static final String TEXT_DEVICE_REPAIR = "设备维修";
-    public static final String TEXT_REQUISITION_TRANSFER = "领用转移";
+//    public static final String TEXT_DEVICE_REPAIR = "设备维修";
+//    public static final String TEXT_REQUISITION_TRANSFER = "领用转移";
+    public static final String TEXT_REQUISITION_TRANSFER = "设备校准申请";
+    public static final String COUNT_JOB = "盘点作业";
     public static final String GRIDNAME_SETTING = "设置";
 //    public static final String QUERYSTATIONINFORMATION = "过站信息";
     public static String[] homeMenuNames = {
             WAREHOUSINGMANAGEMENT,
             HOME_QUALITY_MANAGE,
             TEXT_FAULT_INSPECTION,
-            TEXT_DEVICE_REPAIR,
+//            TEXT_DEVICE_REPAIR,
             TEXT_REQUISITION_TRANSFER,
+            COUNT_JOB,
             GRIDNAME_SETTING
     };
     public static int[] homeMenuIcons = {
             R.drawable.ic_device_scan,
             R.drawable.ic_maintain_manage,
             R.drawable.ic_fault_check,
-            R.drawable.ic_device_repair,
+//            R.drawable.ic_device_repair,
             R.drawable.pause,
+            R.drawable.pandianzuoye,
             R.drawable.mainmenu_usersetting
     };
 
@@ -1486,5 +1539,23 @@ public class GloableParams {
         GloableParams.ASTATIONTHE_SELECT_AUDIT = uriHead + GloableParams.ADDRESSTAIL_GET_AUDIT;
         GloableParams.ADD_GET_PERSONNEL_ID = uriHead + GloableParams.ADDRESSTAIL_GET_PERSONNEL_ID;
 
+        GloableParams.ADDRESS_BARSTOCK_FUZZYSEARCH = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_FUZZYSEARCH;
+        GloableParams.ADDRESS_BARSTOCK_GETSTOCKCHECKS = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_GETSTOCKCHECKS;
+        GloableParams.ADDRESS_BARSTOCK_GETBARCODEDETAIL = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_GETBARCODEDETAIL;
+        GloableParams.ADDRESS_BARSTOCK_DELETEBARCODEIO = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_DELETEBARCODEIO;
+        GloableParams.ADDRESS_BARSTOCK_GETPRODINOUTQTYSUM = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_GETPRODINOUTQTYSUM;
+        GloableParams.ADDRESS_BARSTOCK_GETBARCODEINFO = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_GETBARCODEINFO;
+
+        GloableParams.ADDRESS_GET_DEVICELIST = uriHead + GloableParams.ADDRESSTAIL_GET_DEVICELIST;
+        GloableParams.ADDRESS_SAVE_DEVICE_ALIGN = uriHead + GloableParams.ADDRESSTAIL_SAVE_DEVICE_ALIGN;
+
+        GloableParams.ADDRESS_GET_BARCODE_DATA = uriHead + GloableParams.ADDRESSTAIL_GET_BARCODE_DATA;
+        GloableParams.ADDRESS_GET_PRE_MATERIAL_LIST = uriHead + GloableParams.ADDRESSTAIL_GET_PRE_MATERIAL_LIST;
+
+        GloableParams.ADDRESS_GET_DEVICE_CHANGE_CODE = uriHead + GloableParams.ADDRESSTAIL_GET_DEVICE_CHANGE_CODE;
+
+        GloableParams.ADDRESS_SUBMIT_DEVICE_CHANGE = uriHead + GloableParams.ADDRESSTAIL_SUBMIT_DEVICE_CHANGE;
+
+
     }
 }

+ 6 - 0
app/src/main/java/com/uas/zhongkelihan_devices_manager/util/Constants.java

@@ -215,6 +215,12 @@ public interface Constants {
         //iqc入库传入材料入库的json参数
         String FLAG_IQC_IN_JSON = "flag_iqc_in_json";
 
+        /**
+         * 盘点作业
+         */
+        String INVENTORY_BILL_LIST_CACHE = "inventory_bill_list_cache";
+        String INVENTORY_DC_TIME_CACHE = "inventory_dc_time_cache";
+
         /*
          * pda出入库管理
          */

+ 1 - 2
app/src/main/java/com/uas/zhongkelihan_devices_manager/util/FileUtils.java

@@ -41,6 +41,7 @@ import okhttp3.Request;
  * Created by RaoMeng on 2017/3/27.
  */
 public class FileUtils {
+
     public static File getAssetsFileToCacheDir(Context context, String fileName) {
         InputStream inputStream = null;
         FileOutputStream fileOutputStream = null;
@@ -414,8 +415,6 @@ public class FileUtils {
         public X509Certificate[] getAcceptedIssuers() {
             return new X509Certificate[0];
         }
-
-
     }
 
     public static class TrustAllHostnameVerifier implements HostnameVerifier {

BIN
app/src/main/res/drawable-xhdpi/pandianzuoye.png


+ 62 - 0
app/src/main/res/layout/fragment_inventory_bill.xml

@@ -0,0 +1,62 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:padding="@dimen/padding_normal">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <FrameLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="5">
+
+                <AutoCompleteTextView
+                    android:id="@+id/inventory_bill_num_et"
+                    style="@style/Search"
+                    android:layout_height="35dp"
+                    android:background="@drawable/shape_from_edit"
+                    android:hint="盘点单号"
+                    android:imeOptions="actionSend"
+                    android:padding="6dp" />
+
+                <ImageView
+                    android:id="@+id/inventory_bill_clear_iv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center|right"
+                    android:layout_marginRight="13dp"
+                    android:src="@drawable/wrong"
+                    android:visibility="gone" />
+            </FrameLayout>
+
+            <Button
+                android:id="@+id/inventory_bill_submit_btn"
+                style="@style/ButtonStyle"
+                android:layout_width="0dp"
+                android:layout_height="35dp"
+                android:layout_marginLeft="0dp"
+                android:layout_marginTop="0dp"
+                android:layout_weight="2"
+                android:enabled="false"
+                android:text="@string/confirm" />
+        </LinearLayout>
+
+        <ListView
+            android:id="@+id/inventory_bill_list_lv"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+    </LinearLayout>
+</LinearLayout>

+ 190 - 0
app/src/main/res/layout/fragment_inventory_collect.xml

@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:padding="16dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/inventory_collect_num_tv"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textColor="#333333"
+            tools:text="YSl2340898080" />
+
+        <TextView
+            android:id="@+id/inventory_collect_class_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#333333"
+            tools:text="库存盘点单" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:orientation="horizontal"
+        android:visibility="gone">
+
+        <TextView
+            style="@style/inputItemCaption"
+            android:text="低于" />
+
+        <com.uas.zhongkelihan_devices_manager.view.ClearableEditText
+            android:id="@+id/inventory_collect_tag_et"
+            style="@style/inputItemValue"
+            android:hint="请输入" />
+
+        <TextView
+            style="@style/inputItemCaption"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:text="DC的物料不记录" />
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingLeft="15dp">
+        <CheckBox
+            android:id="@+id/cb_caiji"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#333333"
+            android:textSize="14sp"
+            android:text="取消采集"/>
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:orientation="horizontal">
+
+        <TextView
+            style="@style/inputItemCaption"
+            android:text="条码" />
+
+        <com.uas.zhongkelihan_devices_manager.view.ClearableEditText
+            android:id="@+id/inventory_collect_barcode_et"
+            style="@style/inputItemValue"
+            android:hint="请采集条码" />
+
+        <ImageView
+            android:id="@+id/inventory_collect_scan_iv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginRight="10dp"
+            android:background="@color/white"
+            android:clickable="false"
+            android:src="@drawable/ic_edittext_scan" />
+    </LinearLayout>
+
+
+    <LinearLayout
+        android:visibility="gone"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:orientation="horizontal">
+
+        <TextView
+            style="@style/inputItemCaption"
+            android:text="料号" />
+
+        <com.uas.zhongkelihan_devices_manager.view.ClearableEditText
+            android:id="@+id/cet_liaohao"
+            style="@style/inputItemValue"
+            android:hint="请输入料号" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:visibility="gone"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:orientation="horizontal">
+
+        <TextView
+            style="@style/inputItemCaption"
+            android:text="储位编号" />
+
+        <com.uas.zhongkelihan_devices_manager.view.ClearableEditText
+            android:id="@+id/cet_chuweibianhao"
+            style="@style/inputItemValue"
+            android:hint="请输入储位编号" />
+
+    </LinearLayout>
+
+
+
+    <TextView
+        android:id="@+id/inventory_collect_result_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/spacing_big"
+        android:background="@drawable/shape_msg_block"
+        android:padding="10dp"
+        android:textColor="@color/text_normal"
+        android:visibility="gone"
+        tools:text="采集成功,条码:786528238;数量:2;料号:209837;名称规格:瓶子" />
+
+    <LinearLayout
+        android:layout_marginTop="10dp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="单号:"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/tv_pi_inoutno"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+
+        <TextView
+            android:id="@+id/tv_chaxun"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="查询"
+            android:textSize="14sp"
+            android:textColor="@color/blue"
+            android:layout_marginEnd="10dp"
+            />
+
+        <CheckBox
+            android:id="@+id/stock_data_summary_cb"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:checked="true"
+            android:text="未完成" />
+
+    </LinearLayout>
+
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/st_data"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</LinearLayout>

+ 54 - 0
app/src/main/res/layout/fragment_inventory_detail_list.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="52dp"
+        android:orientation="horizontal"
+        android:padding="8dp"
+        android:visibility="visible">
+
+        <TextView
+            android:id="@+id/inventory_detail_list_search_mode_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginRight="6dp"
+            android:drawableRight="@drawable/ic_menu_retract"
+            android:drawablePadding="4dp"
+            android:gravity="center"
+            android:text="条码号" />
+
+        <com.uas.zhongkelihan_devices_manager.view.ClearableEditText
+            android:id="@+id/inventory_detail_list_search_cet"
+            style="@style/EditTextStyle"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/shape_msg_block"
+            android:drawableLeft="@drawable/icon_search"
+            android:hint="请输入物料"
+            android:imeOptions="actionSearch"
+            android:paddingLeft="5dp" />
+
+        <TextView
+            android:id="@+id/inventory_detail_list_search_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:text="@string/btn_search"
+            android:textColor="@color/text_blue" />
+
+    </LinearLayout>
+
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/inventory_detail_list_lv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="#D8D8D8"
+        android:dividerHeight="1px" />
+</LinearLayout>

+ 54 - 0
app/src/main/res/layout/fragment_inventory_huizong.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="52dp"
+        android:orientation="horizontal"
+        android:padding="8dp"
+        android:visibility="visible">
+
+        <TextView
+            android:id="@+id/inventory_detail_list_search_mode_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginRight="6dp"
+            android:drawableRight="@drawable/ic_menu_retract"
+            android:drawablePadding="4dp"
+            android:gravity="center"
+            android:text="条码号" />
+
+        <com.uas.zhongkelihan_devices_manager.view.ClearableEditText
+            android:id="@+id/inventory_detail_list_search_cet"
+            style="@style/EditTextStyle"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/shape_msg_block"
+            android:drawableLeft="@drawable/icon_search"
+            android:hint="请输入型号"
+            android:imeOptions="actionSearch"
+            android:paddingLeft="5dp" />
+
+        <TextView
+            android:id="@+id/inventory_detail_list_search_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:text="@string/btn_search"
+            android:textColor="@color/text_blue" />
+
+    </LinearLayout>
+
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/inventory_detail_list_lv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="#D8D8D8"
+        android:dividerHeight="1px" />
+</LinearLayout>

+ 21 - 0
app/src/main/res/layout/item_inventory_bill_list.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:padding="10dp">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="单号:"
+        android:textColor="#666666" />
+
+    <TextView
+        android:id="@+id/item_inventory_bill_num_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textColor="#333333"
+        tools:text="YS7294375782" />
+</LinearLayout>

+ 135 - 0
app/src/main/res/layout/item_list_inventory_detail.xml

@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:paddingLeft="8dp"
+    android:paddingTop="4dp"
+    android:paddingRight="4dp"
+    android:paddingBottom="4dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="3dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="料号:"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/list_inventory_detail_prodcode_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="8dp"
+            android:textColor="#333"
+            android:textSize="14sp"
+            tools:text="物料编号" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="3dp">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="3"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:text="条码号:"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/list_inventory_detail_brand_tv"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_marginLeft="8dp"
+                android:layout_weight="1"
+                android:textColor="#333"
+                android:textSize="14sp"
+                tools:text="条码号" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="8dp"
+            android:layout_weight="2"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:text="数量:"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/list_inventory_detail_quantity_tv"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_marginLeft="8dp"
+                android:layout_weight="2"
+                android:textColor="#333"
+                android:textSize="14sp"
+                tools:text="111" />
+        </LinearLayout>
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="3dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="型号:"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/list_inventory_detail_datecode_tv"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="8dp"
+            android:layout_weight="1"
+            android:textColor="#333"
+            android:textSize="14sp"
+            tools:text="型号" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="3dp"
+        android:visibility="gone">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="LotNo:"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/list_inventory_detail_lotno_tv"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="8dp"
+            android:layout_weight="1"
+            android:textColor="#333"
+            android:textSize="14sp"
+            tools:text="lotno" />
+    </LinearLayout>
+</LinearLayout>

+ 86 - 0
app/src/main/res/layout/item_list_inventory_summary.xml

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:paddingLeft="8dp"
+    android:paddingTop="4dp"
+    android:paddingRight="4dp"
+    android:paddingBottom="4dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="3dp">
+
+        <TextView
+            android:id="@+id/list_inventory_summary_prodcode_tv"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:textColor="#333"
+            android:textSize="14sp"
+            tools:text="物料" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="8dp"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:text="数量:"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/list_inventory_summary_quantity_tv"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_marginLeft="8dp"
+                android:layout_weight="2"
+                android:textColor="#333"
+                android:textSize="14sp"
+                tools:text="111" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/list_inventory_summary_brand_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="3dp"
+        android:textColor="#333"
+        tools:text="品牌" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="3dp">
+
+        <TextView
+            android:id="@+id/list_inventory_summary_detail_tv"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:textColor="#333"
+            android:textSize="14sp"
+            tools:text="物料名称" />
+
+        <TextView
+            android:id="@+id/list_inventory_summary_spec_tv"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="8dp"
+            android:layout_weight="1"
+            android:textColor="#333"
+            android:textSize="14sp"
+            tools:text="物料规格" />
+    </LinearLayout>
+
+</LinearLayout>

+ 95 - 0
app/src/main/res/layout/newbeputinstorageorderdetail_fragment.xml

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginRight="@dimen/dp_10"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:text="单号:"
+            android:textColor="@color/black"/>
+
+        <TextView
+            android:id="@+id/tv_pi_inoutno"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginLeft="5dp"
+            android:layout_marginRight="@dimen/space_left_5"
+            android:layout_weight="1"
+            android:gravity="left"
+            android:text=""
+            android:textColor="@color/black"/>
+
+        <TextView
+            android:id="@+id/tv_submint"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="10dp"
+            android:background="@color/gray_light"
+            android:padding="5dp"
+            android:text="提交" />
+
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/tv_qty"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:text=""
+        android:textColor="@color/black"/>
+
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/jlt_storage_in_filter_list_st"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_weight="1" />
+
+    <TextView
+        android:id="@+id/tv_hint"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="5dp"
+        android:text=""/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:layout_marginBottom="@dimen/dp_10">
+
+        <com.uas.zhongkelihan_devices_manager.view.ClearableEditText
+            android:id="@+id/jlt_storage_in_barcode_barcode_et"
+            style="@style/EditTextStyle"
+            android:layout_weight="1"
+            android:background="@drawable/bg_line_edittext"
+            android:focusable="true"
+            android:hint="请采集设备编号"
+            android:imeOptions="actionSend"
+            android:selectAllOnFocus="true"
+            android:textColor="@color/black" />
+
+        <CheckBox
+            android:id="@+id/ck_cancel"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/dp_10"
+            android:text="取消"></CheckBox>
+    </LinearLayout>
+
+
+</LinearLayout>

+ 20 - 0
app/src/main/res/layout/pop_inventory_collect_menu.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/white"
+    android:gravity="center"
+    android:orientation="vertical">
+
+    <Button
+        android:id="@+id/pop_inventory_collect_menu_1"
+        style="@style/action_more_menu"
+        android:text="盘点明细" />
+
+    <Button
+        android:id="@+id/pop_inventory_collect_menu_2"
+        style="@style/action_more_menu"
+        android:text="盘点汇总"
+        android:visibility="visible" />
+
+</LinearLayout>

+ 3 - 4
app/src/main/res/values/strings.xml

@@ -1,7 +1,6 @@
 <resources>
-    <string name="app_name">设备管理系统</string>
-    <string name="app_name_mes">设备管理系统</string>
-    <string name="app_name_test">康特客</string>
+    <string name="app_name">中科力函_设备管理系统</string>
+    <string name="app_name_mes">中科力函_设备管理系统</string>
     <string name="hello_world">Hello world!</string>
     <string name="action_settings">Settings</string>
     <string name="title_activity_connect_server_fragment">ConnectServerFragment</string>
@@ -316,7 +315,7 @@
     <string name="title_storage_in">扫一扫</string>
     <string name="title_storage_maintain">保养填写</string>
     <string name="title_storage_breakdown">送修单填写</string>
-    <string name="title_requisition_transfer">领用转移</string>
+    <string name="title_requisition_transfer">设备校准申请</string>
     <string name="title_storage_deliveryforrepair">维修进度</string>
     <string name="material_storage">材料入库</string>
     <string name="finished_goods_storage">成品入库</string>

+ 20 - 0
app/src/main/res/values/styles.xml

@@ -837,4 +837,24 @@
     <style name="my_actionbar_style" parent="@android:style/Widget.Holo.Light.ActionBar">
         <item name="android:background">#FFFFFF</item>
     </style>
+
+    <style name="inputItemValue" parent="EditTextStyle">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:focusable">true</item>
+        <item name="android:focusableInTouchMode">true</item>
+        <item name="android:imeOptions">actionSend</item>
+        <item name="android:textColor">@color/black</item>
+    </style>
+
+    <style name="inputItemCaption">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:gravity">center</item>
+        <item name="android:minWidth">76dp</item>
+        <!--<item name="android:padding">10dp</item>-->
+        <item name="android:textColor">@color/body_text_1</item>
+        <item name="android:textSize">16sp</item>
+    </style>
+
 </resources>

+ 2 - 2
build.gradle

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