RaoMeng преди 5 години
родител
ревизия
e3ccf0bebe
променени са 29 файла, в които са добавени 2501 реда и са изтрити 7 реда
  1. 83 0
      app/src/main/java/com/uas/pda_smart_com/adapter/InventoryDetailAdapter.java
  2. 83 0
      app/src/main/java/com/uas/pda_smart_com/adapter/InventorySummaryAdapter.java
  3. 3 0
      app/src/main/java/com/uas/pda_smart_com/adapter/StockTaskMultipleAdapter.java
  4. 64 0
      app/src/main/java/com/uas/pda_smart_com/adapter/StorageSearchModeAdapter.java
  5. 137 0
      app/src/main/java/com/uas/pda_smart_com/bean/InventoryDetailBean.java
  6. 88 0
      app/src/main/java/com/uas/pda_smart_com/bean/InventorySummaryBean.java
  7. 10 0
      app/src/main/java/com/uas/pda_smart_com/bean/MaterialInformationBean.java
  8. 9 0
      app/src/main/java/com/uas/pda_smart_com/bean/StockTaskMultipleBean.java
  9. 142 0
      app/src/main/java/com/uas/pda_smart_com/bean/StorageInBillBean.java
  10. 2 1
      app/src/main/java/com/uas/pda_smart_com/fragment/IOCOutMakeMaterialOper.java
  11. 3 1
      app/src/main/java/com/uas/pda_smart_com/fragment/IndexWareHouseContentFragment.java
  12. 453 0
      app/src/main/java/com/uas/pda_smart_com/fragment/InventoryBillFragment.java
  13. 301 0
      app/src/main/java/com/uas/pda_smart_com/fragment/InventoryCollectFragment.java
  14. 344 0
      app/src/main/java/com/uas/pda_smart_com/fragment/InventoryDetailListFragment.java
  15. 233 0
      app/src/main/java/com/uas/pda_smart_com/fragment/InventorySummaryListFragment.java
  16. 1 1
      app/src/main/java/com/uas/pda_smart_com/fragment/MaterialOutStockTaskMultipleFragment.java
  17. 24 1
      app/src/main/java/com/uas/pda_smart_com/global/GloableParams.java
  18. 7 0
      app/src/main/java/com/uas/pda_smart_com/util/Constants.java
  19. 62 0
      app/src/main/res/layout/fragment_inventory_bill.xml
  20. 89 0
      app/src/main/res/layout/fragment_inventory_collect.xml
  21. 54 0
      app/src/main/res/layout/fragment_inventory_detail_list.xml
  22. 21 0
      app/src/main/res/layout/item_inventory_bill_list.xml
  23. 135 0
      app/src/main/res/layout/item_list_inventory_detail.xml
  24. 86 0
      app/src/main/res/layout/item_list_inventory_summary.xml
  25. 12 0
      app/src/main/res/layout/item_list_stock_task_multiple.xml
  26. 20 0
      app/src/main/res/layout/pop_inventory_collect_menu.xml
  27. 23 0
      app/src/main/res/layout/pop_storage_mode.xml
  28. 10 1
      app/src/main/res/values/styles.xml
  29. 2 2
      build.gradle

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

@@ -0,0 +1,83 @@
+package com.uas.pda_smart_com.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.pda_smart_com.R;
+import com.uas.pda_smart_com.bean.InventoryDetailBean;
+import com.uas.pda_smart_com.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/pda_smart_com/adapter/InventorySummaryAdapter.java

@@ -0,0 +1,83 @@
+package com.uas.pda_smart_com.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.pda_smart_com.R;
+import com.uas.pda_smart_com.bean.InventorySummaryBean;
+import com.uas.pda_smart_com.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.getPR_SPEC());
+                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);
+        }
+    }
+}

+ 3 - 0
app/src/main/java/com/uas/pda_smart_com/adapter/StockTaskMultipleAdapter.java

@@ -68,6 +68,7 @@ public class StockTaskMultipleAdapter extends BaseAdapter {
         holder.stockTaskMultipleZxbzs.setText(CommonUtil.doubleFormat(object.getBAR_REMAIN()));
         holder.stockTaskMultipleBatchcode.setText(object.getPD_BATCHCODE());
         holder.stockTaskMultipleLocation.setText(object.getBAR_LOCATION());
+        holder.stockTaskMultipleDcTv.setText(object.getDC());
         holder.stockTaskMultipleHave.setText((object.getBA_HASBARCODE() == 0 ? "无" : "有"));
         holder.stockTaskMultipleDetailSpec.setText(object.getPR_DETAIL() + "  " + object.getPR_SPEC());
 
@@ -111,6 +112,7 @@ public class StockTaskMultipleAdapter extends BaseAdapter {
         private MostListView stockTaskMultipleListLv;
         private LinearLayout stockTaskMultipleSuperLl;
         private TextView stockTaskMultipleSpreadTv;
+        private TextView stockTaskMultipleDcTv;
 
         public ViewHolder(View view) {
             stockTaskMultipleOrispeccode = (TextView) view.findViewById(R.id.stock_task_multiple_orispeccode);
@@ -125,6 +127,7 @@ public class StockTaskMultipleAdapter extends BaseAdapter {
             stockTaskMultipleListLv = (MostListView) view.findViewById(R.id.stock_task_multiple_list_lv);
             stockTaskMultipleSuperLl = (LinearLayout) view.findViewById(R.id.stock_task_multiple_super_ll);
             stockTaskMultipleSpreadTv = (TextView) view.findViewById(R.id.stock_task_multiple_spread_tv);
+            stockTaskMultipleDcTv = (TextView) view.findViewById(R.id.stock_task_multiple_dc);
         }
     }
 }

+ 64 - 0
app/src/main/java/com/uas/pda_smart_com/adapter/StorageSearchModeAdapter.java

@@ -0,0 +1,64 @@
+package com.uas.pda_smart_com.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.pda_smart_com.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class StorageSearchModeAdapter extends BaseAdapter {
+
+    private List<String> objects = new ArrayList<String>();
+
+    private Context context;
+    private LayoutInflater layoutInflater;
+
+    public StorageSearchModeAdapter(Context context, List<String> objects) {
+        this.context = context;
+        this.layoutInflater = LayoutInflater.from(context);
+        this.objects = objects;
+    }
+
+    @Override
+    public int getCount() {
+        return objects.size();
+    }
+
+    @Override
+    public String 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_cache_warehouse, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        initializeViews((String) getItem(position), (ViewHolder) convertView.getTag());
+        return convertView;
+    }
+
+    private void initializeViews(String object, ViewHolder holder) {
+        holder.listWarehouseTv.setText(object);
+    }
+
+    protected class ViewHolder {
+        private TextView listWarehouseTv;
+
+        public ViewHolder(View view) {
+            listWarehouseTv = (TextView) view.findViewById(R.id.list_warehouse_tv);
+        }
+    }
+}

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

@@ -0,0 +1,137 @@
+package com.uas.pda_smart_com.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;
+    }
+}

+ 88 - 0
app/src/main/java/com/uas/pda_smart_com/bean/InventorySummaryBean.java

@@ -0,0 +1,88 @@
+package com.uas.pda_smart_com.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;
+
+    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;
+    }
+}

+ 10 - 0
app/src/main/java/com/uas/pda_smart_com/bean/MaterialInformationBean.java

@@ -40,6 +40,7 @@ public class MaterialInformationBean {
          * BAR_LOCATION : 仓位
          * PD_BATCHCODE : 批次号
          * BA_REMAIN : 23
+         * DC:xxx
          */
 
         private String PR_ORISPECCODE;
@@ -52,6 +53,7 @@ public class MaterialInformationBean {
         private String BAR_LOCATION;
         private String PD_BATCHCODE;
         private double BAR_REMAIN;
+        private String DC;
 
         public String getPR_ORISPECCODE() {
             return PR_ORISPECCODE;
@@ -132,5 +134,13 @@ public class MaterialInformationBean {
         public void setPD_BATCHCODE(String PD_BATCHCODE) {
             this.PD_BATCHCODE = PD_BATCHCODE;
         }
+
+        public String getDC() {
+            return DC;
+        }
+
+        public void setDC(String DC) {
+            this.DC = DC;
+        }
     }
 }

+ 9 - 0
app/src/main/java/com/uas/pda_smart_com/bean/StockTaskMultipleBean.java

@@ -32,6 +32,7 @@ public class StockTaskMultipleBean {
     private String PD_BATCHCODE;
     private int BA_HASBARCODE;
     private double BAR_REMAIN;
+    private String DC;
     private List<NOSBean> NOS;
 
     public String getPR_ORISPECCODE() {
@@ -122,6 +123,14 @@ public class StockTaskMultipleBean {
         this.BAR_REMAIN = BAR_REMAIN;
     }
 
+    public String getDC() {
+        return DC;
+    }
+
+    public void setDC(String DC) {
+        this.DC = DC;
+    }
+
     public List<NOSBean> getNOS() {
         return NOS;
     }

+ 142 - 0
app/src/main/java/com/uas/pda_smart_com/bean/StorageInBillBean.java

@@ -0,0 +1,142 @@
+package com.uas.pda_smart_com.bean;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/6/22 15:31
+ */
+public class StorageInBillBean {
+
+    /**
+     * PI_INOUTNO : YS180600044
+     * PI_WHCODE : A
+     * PI_WHNAME : A仓
+     * PI_CARDCODE : GN0028
+     * PI_TITLE : 深圳市优软科技有限公司
+     * PI_STATUS : 未过账
+     * PI_CLASS : 采购验收单
+     * PI_ID : 50721894
+     * PI_INVOSTATUS : 在录入
+     * PI_RECORDMAN : 饶猛
+     * PI_RECORDDATE : 1529651193000
+     * RN : 1
+     */
+
+    private String PI_INOUTNO;
+    private String PI_WHCODE;
+    private String PI_WHNAME;
+    private String PI_CARDCODE;
+    private String PI_TITLE;
+    private String PI_STATUS;
+    private String PI_PDASTATUS;
+    private String PI_CLASS;
+    private long PI_ID;
+    private String PI_INVOSTATUS;
+    private String PI_RECORDMAN;
+    private long PI_RECORDDATE;
+    private int RN;
+
+    public String getPI_INOUTNO() {
+        return PI_INOUTNO;
+    }
+
+    public void setPI_INOUTNO(String PI_INOUTNO) {
+        this.PI_INOUTNO = PI_INOUTNO;
+    }
+
+    public String getPI_WHCODE() {
+        return PI_WHCODE;
+    }
+
+    public void setPI_WHCODE(String PI_WHCODE) {
+        this.PI_WHCODE = PI_WHCODE;
+    }
+
+    public String getPI_WHNAME() {
+        return PI_WHNAME;
+    }
+
+    public void setPI_WHNAME(String PI_WHNAME) {
+        this.PI_WHNAME = PI_WHNAME;
+    }
+
+    public String getPI_CARDCODE() {
+        return PI_CARDCODE;
+    }
+
+    public void setPI_CARDCODE(String PI_CARDCODE) {
+        this.PI_CARDCODE = PI_CARDCODE;
+    }
+
+    public String getPI_TITLE() {
+        return PI_TITLE;
+    }
+
+    public void setPI_TITLE(String PI_TITLE) {
+        this.PI_TITLE = PI_TITLE;
+    }
+
+    public String getPI_STATUS() {
+        return PI_STATUS;
+    }
+
+    public void setPI_STATUS(String PI_STATUS) {
+        this.PI_STATUS = PI_STATUS;
+    }
+
+    public String getPI_PDASTATUS() {
+        return PI_PDASTATUS;
+    }
+
+    public void setPI_PDASTATUS(String PI_PDASTATUS) {
+        this.PI_PDASTATUS = PI_PDASTATUS;
+    }
+
+    public String getPI_CLASS() {
+        return PI_CLASS;
+    }
+
+    public void setPI_CLASS(String PI_CLASS) {
+        this.PI_CLASS = PI_CLASS;
+    }
+
+    public long getPI_ID() {
+        return PI_ID;
+    }
+
+    public void setPI_ID(long PI_ID) {
+        this.PI_ID = PI_ID;
+    }
+
+    public String getPI_INVOSTATUS() {
+        return PI_INVOSTATUS;
+    }
+
+    public void setPI_INVOSTATUS(String PI_INVOSTATUS) {
+        this.PI_INVOSTATUS = PI_INVOSTATUS;
+    }
+
+    public String getPI_RECORDMAN() {
+        return PI_RECORDMAN;
+    }
+
+    public void setPI_RECORDMAN(String PI_RECORDMAN) {
+        this.PI_RECORDMAN = PI_RECORDMAN;
+    }
+
+    public long getPI_RECORDDATE() {
+        return PI_RECORDDATE;
+    }
+
+    public void setPI_RECORDDATE(long PI_RECORDDATE) {
+        this.PI_RECORDDATE = PI_RECORDDATE;
+    }
+
+    public int getRN() {
+        return RN;
+    }
+
+    public void setRN(int RN) {
+        this.RN = RN;
+    }
+}

+ 2 - 1
app/src/main/java/com/uas/pda_smart_com/fragment/IOCOutMakeMaterialOper.java

@@ -689,7 +689,8 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                                             + "  " + (materialInformationBean.getData().getPR_SPEC() == null ? "" : materialInformationBean.getData().getPR_SPEC())
                                             + "; 未备料数:" + (materialInformationBean.getData().getPD_RESTQTY() == null ? "" : materialInformationBean.getData().getPD_RESTQTY())
                                             + "; 批数量:" + (CommonUtil.doubleFormat(materialInformationBean.getData().getBAR_REMAIN()))
-                                            + "; 仓位:" + (materialInformationBean.getData().getBAR_LOCATION() == null ? "" : materialInformationBean.getData().getBAR_LOCATION());
+                                            + "; 仓位:" + (materialInformationBean.getData().getBAR_LOCATION() == null ? "" : materialInformationBean.getData().getBAR_LOCATION())
+                                            + "; DC:" + (materialInformationBean.getData().getDC() == null ? "" : materialInformationBean.getData().getDC());
                             if (materialInformationBean.getData().getPD_BATCHCODE() != null) {
                                 materialInfo = materialInfo + "; 批号:" + materialInformationBean.getData().getPD_BATCHCODE();
                             }

+ 3 - 1
app/src/main/java/com/uas/pda_smart_com/fragment/IndexWareHouseContentFragment.java

@@ -121,7 +121,9 @@ public class IndexWareHouseContentFragment extends BaseFragment implements Adapt
                     break;
                 //盘点作业
                 case GloableParams.GRIDNAME_WORK_INVENTORY:
-                    CommonUtil.toastNoRepeat(mActivity, "该功能正在内测");
+                    fragment = new InventoryBillFragment();
+                    getFragmentManager().beginTransaction().addToBackStack(null)
+                            .replace(R.id.container_function_fragment, fragment).commit();
                     break;
                 case GloableParams.GRIDNAME_MODIFY_QUANTITY:
                     fragment = new ModifyBarcodeQuantityFragment();

+ 453 - 0
app/src/main/java/com/uas/pda_smart_com/fragment/InventoryBillFragment.java

@@ -0,0 +1,453 @@
+package com.uas.pda_smart_com.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.pda_smart_com.R;
+import com.uas.pda_smart_com.activity.FunctionActivity;
+import com.uas.pda_smart_com.application.PdaApplication;
+import com.uas.pda_smart_com.bean.IOCOutMakeMaterialFuzzySearch;
+import com.uas.pda_smart_com.bean.StorageInBillBean;
+import com.uas.pda_smart_com.global.GloableParams;
+import com.uas.pda_smart_com.util.CommonUtil;
+import com.uas.pda_smart_com.util.Constants;
+import com.uas.pda_smart_com.util.FastjsonUtil;
+import com.uas.pda_smart_com.util.FragmentUtils;
+import com.uas.pda_smart_com.util.HttpCallback;
+import com.uas.pda_smart_com.util.HttpParams;
+import com.uas.pda_smart_com.util.JsonTools;
+import com.uas.pda_smart_com.util.MyArrayAdapter;
+import com.uas.pda_smart_com.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;
+        }
+
+    }
+}

+ 301 - 0
app/src/main/java/com/uas/pda_smart_com/fragment/InventoryCollectFragment.java

@@ -0,0 +1,301 @@
+package com.uas.pda_smart_com.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.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.uas.pda_smart_com.R;
+import com.uas.pda_smart_com.activity.FunctionActivity;
+import com.uas.pda_smart_com.global.GloableParams;
+import com.uas.pda_smart_com.listener.MyEditorActionListener;
+import com.uas.pda_smart_com.tools.SharedPreUtil;
+import com.uas.pda_smart_com.util.CameraUtil;
+import com.uas.pda_smart_com.util.CommonUtil;
+import com.uas.pda_smart_com.util.Constants;
+import com.uas.pda_smart_com.util.FastjsonUtil;
+import com.uas.pda_smart_com.util.FragmentUtils;
+import com.uas.pda_smart_com.util.HttpCallback;
+import com.uas.pda_smart_com.util.HttpParams;
+import com.uas.pda_smart_com.util.VolleyRequest;
+import com.uas.pda_smart_com.view.ClearableEditText;
+import com.uuzuche.lib_zxing.activity.CaptureActivity;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
+
+/**
+ * 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;
+    private ImageView mScanImageView;
+    private TextView mResultTextView, mNumTextView, mClassTextView;
+    private Button mMoreButton;
+    private PopupWindow mMenuPopupWindow;
+    private String pi_inoutno, pi_id, pi_class;
+
+    @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);
+
+        mBarcodeEditText.requestFocus();
+    }
+
+    @Override
+    protected void initEvents() {
+        mMoreButton.setOnClickListener(this);
+        mScanImageView.setOnClickListener(this);
+
+//        mTagEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+//            @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) {
+//                String deadLine = mTagEditText.getText().toString().trim();
+                String barcode = mBarcodeEditText.getText().toString().trim();
+
+//                if (TextUtils.isEmpty(deadLine)) {
+//                    CommonUtil.toastNoRepeat(mActivity, "请输入临界校验日期");
+//                    return;
+//                }
+
+                if (TextUtils.isEmpty(barcode)) {
+                    CommonUtil.toastNoRepeat(mActivity, "请采集条码");
+                    return;
+                }
+
+                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)
+                        .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 {
+                        mBarcodeEditText.setText("");
+                        progressDialog.dismiss();
+                        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);
+        }
+
+//        String deadLine = SharedPreUtil.getString(mActivity, Constants.FLAG.INVENTORY_DC_TIME_CACHE, "");
+//        if (!TextUtils.isEmpty(deadLine)) {
+//            mTagEditText.setText(deadLine);
+//            mBarcodeEditText.requestFocus();
+//        } else {
+//            mTagEditText.requestFocus();
+//        }
+    }
+
+    @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);
+
+        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());
+            }
+        }
+    }
+
+    @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/pda_smart_com/fragment/InventoryDetailListFragment.java

@@ -0,0 +1,344 @@
+package com.uas.pda_smart_com.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.pda_smart_com.R;
+import com.uas.pda_smart_com.activity.FunctionActivity;
+import com.uas.pda_smart_com.adapter.InventoryDetailAdapter;
+import com.uas.pda_smart_com.adapter.StorageSearchModeAdapter;
+import com.uas.pda_smart_com.bean.InventoryDetailBean;
+import com.uas.pda_smart_com.global.GloableParams;
+import com.uas.pda_smart_com.listener.MyEditorActionListener;
+import com.uas.pda_smart_com.util.CommonUtil;
+import com.uas.pda_smart_com.util.FastjsonUtil;
+import com.uas.pda_smart_com.util.HttpCallback;
+import com.uas.pda_smart_com.util.HttpParams;
+import com.uas.pda_smart_com.util.VolleyRequest;
+import com.uas.pda_smart_com.view.ClearableEditText;
+import com.uas.pda_smart_com.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();
+    }
+}

+ 233 - 0
app/src/main/java/com/uas/pda_smart_com/fragment/InventorySummaryListFragment.java

@@ -0,0 +1,233 @@
+package com.uas.pda_smart_com.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.pda_smart_com.R;
+import com.uas.pda_smart_com.activity.FunctionActivity;
+import com.uas.pda_smart_com.adapter.InventorySummaryAdapter;
+import com.uas.pda_smart_com.bean.InventorySummaryBean;
+import com.uas.pda_smart_com.global.GloableParams;
+import com.uas.pda_smart_com.listener.MyEditorActionListener;
+import com.uas.pda_smart_com.util.CommonUtil;
+import com.uas.pda_smart_com.util.FastjsonUtil;
+import com.uas.pda_smart_com.util.HttpCallback;
+import com.uas.pda_smart_com.util.HttpParams;
+import com.uas.pda_smart_com.util.VolleyRequest;
+import com.uas.pda_smart_com.view.ClearableEditText;
+import com.uas.pda_smart_com.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_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);
+        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_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();
+    }
+}

+ 1 - 1
app/src/main/java/com/uas/pda_smart_com/fragment/MaterialOutStockTaskMultipleFragment.java

@@ -173,7 +173,6 @@ public class MaterialOutStockTaskMultipleFragment extends BaseFragment {
 
     /**
      * 获取材料出库备料任务列表
-     *
      */
     private void getStockTaskList() {
         progressDialog.show();
@@ -215,6 +214,7 @@ public class MaterialOutStockTaskMultipleFragment extends BaseFragment {
                                         stockTaskItemBean.setBAR_LOCATION(JsonUtils.optStringNotNull(dataObject, "BAR_LOCATION"));
                                         stockTaskItemBean.setBA_HASBARCODE((int) JsonUtils.optLongNotNull(dataObject, "BA_HASBARCODE"));
                                         stockTaskItemBean.setPD_BATCHCODE(JsonUtils.optStringNotNull(dataObject, "PD_BATCHCODE"));
+                                        stockTaskItemBean.setDC(JsonUtils.optStringNotNull(dataObject, "DC"));
                                         stockTaskItemBean.setBAR_REMAIN(JsonUtils.optDoubleNotNull(dataObject, "BAR_REMAIN"));
 
                                         List<StockTaskMultipleBean.NOSBean> nosBeans = new ArrayList<>();

+ 24 - 1
app/src/main/java/com/uas/pda_smart_com/global/GloableParams.java

@@ -217,6 +217,12 @@ public class GloableParams {
     public static String ADDRESS_MSD_CONFIRMSEALBARCODE;
     public static String ADDRESS_COMMON_DOWNLOADBYID;
     public static String ADDRESS_OUTMATERIAL_GETPDAVERSION;
+    public static String ADDRESS_BARSTOCK_FUZZYSEARCH;
+    public static String ADDRESS_BARSTOCK_GETSTOCKCHECKS;
+    public static String ADDRESS_BARSTOCK_GETBARCODEDETAIL;
+    public static String ADDRESS_BARSTOCK_GETBARCODEINFO;
+    public static String ADDRESS_BARSTOCK_DELETEBARCODEIO;
+    public static String ADDRESS_BARSTOCK_GETPRODINOUTQTYSUM;
 
 
     //连接服务器请求地址
@@ -241,6 +247,16 @@ public class GloableParams {
     private static final String ADDRESSTAIL_INMATERIAL_GETBARACCEPTCODE = "/api/pda/inMaterial/getBarAcceptCode.action";
     private static final String ADDRESSTAIL_INMATERIAL_SAVEBARACCEPTCODE = "/api/pda/inMaterial/saveBarAcceptCode.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";
+
     /**
      * 成品检验
      */
@@ -655,9 +671,10 @@ public class GloableParams {
     public static final String GRIDNAME_WORK_INVENTORY = "盘点作业";
     public static final String GRIDNAME_MODIFY_QUANTITY = "条码数量修改";
     public static final String[] storageGridNames = {GRIDNAME_GOOD_SEARCH, GRIDNAME_BATCH_OPRATION,
-            GRIDNAME_STORAGE_TRANSFER, GRIDNAME_MODIFY_QUANTITY};
+            GRIDNAME_STORAGE_TRANSFER, GRIDNAME_MODIFY_QUANTITY, GRIDNAME_WORK_INVENTORY};
     public static final int[] storageGridImgs = {R.drawable.storage_good_search,
             R.drawable.storage_bach_operation, R.drawable.storage_transfer,
+            R.drawable.storage_work_inventory,
             R.drawable.ic_modify_quantity};
     //DETAIL:搜索备料单号,下拉列表
     public static final String SPINNER_PREPARE_SEARCH = "搜索备料单号";
@@ -962,5 +979,11 @@ public class GloableParams {
         GloableParams.ADDRESS_MSD_CONFIRMSEALBARCODE = uriHead + GloableParams.ADDRESSTAIL_MSD_CONFIRMSEALBARCODE;
         GloableParams.ADDRESS_COMMON_DOWNLOADBYID = uriHead + GloableParams.ADDRESSTAIL_COMMON_DOWNLOADBYID;
         GloableParams.ADDRESS_OUTMATERIAL_GETPDAVERSION = uriHead + GloableParams.ADDRESSTAIL_OUTMATERIAL_GETPDAVERSION;
+        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_GETBARCODEINFO = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_GETBARCODEINFO;
+        GloableParams.ADDRESS_BARSTOCK_DELETEBARCODEIO = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_DELETEBARCODEIO;
+        GloableParams.ADDRESS_BARSTOCK_GETPRODINOUTQTYSUM = uriHead + GloableParams.ADDRESSTAIL_BARSTOCK_GETPRODINOUTQTYSUM;
     }
 }

+ 7 - 0
app/src/main/java/com/uas/pda_smart_com/util/Constants.java

@@ -205,6 +205,13 @@ public interface Constants {
         String FLAG_RECHARGE_DETAIL = "flag_recharge_detail";
         String FLAG_INSPECTION_DETAIL = "flag_inspection_detail";
         String FLAG_IQC_IN_DETAIL = "flag_iqc_in_detail";
+
+
+        /**
+         * 盘点作业
+         */
+        String INVENTORY_BILL_LIST_CACHE = "inventory_bill_list_cache";
+        String INVENTORY_DC_TIME_CACHE = "inventory_dc_time_cache";
     }
 
     /**

+ 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>

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

@@ -0,0 +1,89 @@
+<?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.pda_smart_com.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:layout_marginTop="6dp"
+        android:orientation="horizontal">
+
+        <TextView
+            style="@style/inputItemCaption"
+            android:text="条码" />
+
+        <com.uas.pda_smart_com.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>
+
+    <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>

+ 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.pda_smart_com.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>

+ 12 - 0
app/src/main/res/layout/item_list_stock_task_multiple.xml

@@ -124,6 +124,18 @@
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
                 tools:text="有" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="DC:" />
+
+            <TextView
+                android:id="@+id/stock_task_multiple_dc"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                tools:text="A001" />
         </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="gone" />
+
+</LinearLayout>

+ 23 - 0
app/src/main/res/layout/pop_storage_mode.xml

@@ -0,0 +1,23 @@
+<?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:orientation="vertical">
+
+    <!--<TextView-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="wrap_content"-->
+    <!--android:padding="16dp"-->
+    <!--android:text="历史ip地址" />-->
+
+    <!--<View-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="1dp"-->
+    <!--android:background="@color/gray_light" />-->
+
+    <ListView
+        android:id="@+id/pop_ip_history_lv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+</LinearLayout>

+ 10 - 1
app/src/main/res/values/styles.xml

@@ -741,7 +741,6 @@
     </style>
 
 
-
     <style name="progressbar_download">
         <item name="android:indeterminateOnly">false</item>
         <item name="android:progressDrawable">@drawable/progressbar_diy
@@ -752,4 +751,14 @@
         <item name="android:minHeight">20dip</item>
         <item name="android:maxHeight">20dip</item>
     </style>
+
+
+    <style name="action_more_menu">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginLeft">10dp</item>
+        <item name="android:layout_marginRight">10dp</item>
+        <item name="android:background">@color/transparent</item>
+        <item name="android:textSize">@dimen/app_text_size_body_2</item>
+    </style>
 </resources>

+ 2 - 2
build.gradle

@@ -45,8 +45,8 @@ ext {
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 2,
-            versionName      : "v1.2"
+            versionCode      : 3,
+            versionName      : "v1.3"
     ]
 
     depsVersion = [