Explorar el Código

增加了成品入库和成品出库

ChengJH hace 2 años
padre
commit
9e156ebea9
Se han modificado 33 ficheros con 5560 adiciones y 11 borrados
  1. 2 2
      app/build.gradle
  2. 23 0
      app/src/main/java/com/uas/pda_smart_com_lg/adapter/JLTRevokeBoxAdapter.java
  3. 61 0
      app/src/main/java/com/uas/pda_smart_com_lg/bean/CollectListBean.java
  4. 61 0
      app/src/main/java/com/uas/pda_smart_com_lg/bean/DeliveryorDerdetailBean.java
  5. 174 0
      app/src/main/java/com/uas/pda_smart_com_lg/bean/JLTStorageInBean.java
  6. 103 0
      app/src/main/java/com/uas/pda_smart_com_lg/bean/OutboundListBean.java
  7. 10 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/IndexWareHouseContentFragment.java
  8. 204 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/JLTRevokeBoxFragment.java
  9. 1653 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/JLTStorageInBarcodeFragment.java
  10. 256 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/JLTStorageInBoxScanFragment.java
  11. 298 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/NewBePutInStorageOrderDetailFragment.java
  12. 557 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/NewJltStorageInFilterListFragment.java
  13. 300 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/NewOutboundDeliveryorderDetailFragment.java
  14. 437 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/OutboundLis_Two_fragment.java
  15. 172 0
      app/src/main/java/com/uas/pda_smart_com_lg/fragment/ProductDetailsFragment.java
  16. 52 4
      app/src/main/java/com/uas/pda_smart_com_lg/global/GloableParams.java
  17. 2 2
      app/src/main/java/com/uas/pda_smart_com_lg/util/PrintUtils.java
  18. BIN
      app/src/main/res/drawable-hdpi/ic_check.png
  19. BIN
      app/src/main/res/drawable-hdpi/ic_uncheck.png
  20. BIN
      app/src/main/res/drawable/ic_finished_product_outbound.png
  21. BIN
      app/src/main/res/drawable/ic_finished_product_storage.png
  22. 61 0
      app/src/main/res/layout/fragment_jlt_revoke_box.xml
  23. 591 0
      app/src/main/res/layout/fragment_jlt_storage_in_barcode.xml
  24. 63 0
      app/src/main/res/layout/fragment_jlt_storage_in_box_scan.xml
  25. 80 0
      app/src/main/res/layout/fragment_jlt_storage_in_filter_list.xml
  26. 45 0
      app/src/main/res/layout/item_revoke_box_list.xml
  27. 117 0
      app/src/main/res/layout/newbeputinstorageorderdetail_fragment.xml
  28. 120 0
      app/src/main/res/layout/newoutbounddeliveryorderdetail_fragment.xml
  29. 47 0
      app/src/main/res/layout/pop_outboundlist_out_menu.xml
  30. 13 0
      app/src/main/res/layout/proderdetail_fragment.xml
  31. 55 0
      app/src/main/res/layout/storagerechargetwo_fragment.xml
  32. 1 1
      app/src/main/res/values/strings.xml
  33. 2 2
      build.gradle

+ 2 - 2
app/build.gradle

@@ -41,11 +41,11 @@ android {
             if (outputFile != null && outputFile.name.endsWith('.apk')) {
                 if (variant.buildType.name.equals('release')) {
                     def releaseInfo = getVersionName()
-                    fileName = "UAS_PDA_SMART_COM_LGRELEASE_${releaseInfo}.apk"
+                    fileName = "LG_UAS_PDA_SMART_COM_LGRELEASE_${releaseInfo}.apk"
 
                 } else if (variant.buildType.name.equals('debug')) {
                     def debugInfo = getVersionName()
-                    fileName = "UAS_PDA_SMART_COM_LGDEBUG_${debugInfo}.apk"
+                    fileName = "LG_UAS_PDA_SMART_COM_LGDEBUG_${debugInfo}.apk"
                 }
                 outputFileName = fileName
             }

+ 23 - 0
app/src/main/java/com/uas/pda_smart_com_lg/adapter/JLTRevokeBoxAdapter.java

@@ -0,0 +1,23 @@
+package com.uas.pda_smart_com_lg.adapter;
+
+import android.support.annotation.Nullable;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.bean.JLTStorageModelBean;
+
+import java.util.List;
+
+public class JLTRevokeBoxAdapter extends BaseQuickAdapter<JLTStorageModelBean, BaseViewHolder> {
+
+    public JLTRevokeBoxAdapter(@Nullable List<JLTStorageModelBean> data) {
+        super(R.layout.item_revoke_box_list, data);
+    }
+
+    @Override
+    protected void convert(BaseViewHolder helper, JLTStorageModelBean item) {
+        helper.setText(R.id.item_jlt_revoke_box_model_tv, item.getModel());
+        helper.setText(R.id.item_jlt_revoke_box_quantity_tv, item.getQuantity());
+    }
+}

+ 61 - 0
app/src/main/java/com/uas/pda_smart_com_lg/bean/CollectListBean.java

@@ -0,0 +1,61 @@
+package com.uas.pda_smart_com_lg.bean;
+
+/**
+ * Created by cjh-sail on 2023-02-23
+ */
+public class CollectListBean {
+    private String PIM_TYPE;
+    private String CONTENT;
+    private String CN;
+    private String PR_ORISPECCODE;
+    private String PR_CODE;
+    private String PR_DETAIL;
+
+    public String getPIM_TYPE() {
+        return PIM_TYPE;
+    }
+
+    public void setPIM_TYPE(String PIM_TYPE) {
+        this.PIM_TYPE = PIM_TYPE;
+    }
+
+    public String getCONTENT() {
+        return CONTENT;
+    }
+
+    public void setCONTENT(String CONTENT) {
+        this.CONTENT = CONTENT;
+    }
+
+    public String getCN() {
+        return CN;
+    }
+
+    public void setCN(String CN) {
+        this.CN = CN;
+    }
+
+    public String getPR_ORISPECCODE() {
+        return PR_ORISPECCODE;
+    }
+
+    public void setPR_ORISPECCODE(String PR_ORISPECCODE) {
+        this.PR_ORISPECCODE = PR_ORISPECCODE;
+    }
+
+    public String getPR_CODE() {
+        return PR_CODE;
+    }
+
+    public void setPR_CODE(String PR_CODE) {
+        this.PR_CODE = PR_CODE;
+    }
+
+    public String getPR_DETAIL() {
+        return PR_DETAIL;
+    }
+
+    public void setPR_DETAIL(String PR_DETAIL) {
+        this.PR_DETAIL = PR_DETAIL;
+    }
+}

+ 61 - 0
app/src/main/java/com/uas/pda_smart_com_lg/bean/DeliveryorDerdetailBean.java

@@ -0,0 +1,61 @@
+package com.uas.pda_smart_com_lg.bean;
+
+/**
+ * Created by cjh-sail on 2023-02-23
+ */
+public class DeliveryorDerdetailBean {
+    private String PR_ORISPECCODE;
+    private String PD_PRODCODE;
+    private String PR_DETAIL;
+    private String OUTQTY;
+    private String GETQTY;
+    private String UNGETQTY;
+
+    public String getPR_ORISPECCODE() {
+        return PR_ORISPECCODE;
+    }
+
+    public void setPR_ORISPECCODE(String PR_ORISPECCODE) {
+        this.PR_ORISPECCODE = PR_ORISPECCODE;
+    }
+
+    public String getPD_PRODCODE() {
+        return PD_PRODCODE;
+    }
+
+    public void setPD_PRODCODE(String PD_PRODCODE) {
+        this.PD_PRODCODE = PD_PRODCODE;
+    }
+
+    public String getPR_DETAIL() {
+        return PR_DETAIL;
+    }
+
+    public void setPR_DETAIL(String PR_DETAIL) {
+        this.PR_DETAIL = PR_DETAIL;
+    }
+
+    public String getOUTQTY() {
+        return OUTQTY;
+    }
+
+    public void setOUTQTY(String OUTQTY) {
+        this.OUTQTY = OUTQTY;
+    }
+
+    public String getGETQTY() {
+        return GETQTY;
+    }
+
+    public void setGETQTY(String GETQTY) {
+        this.GETQTY = GETQTY;
+    }
+
+    public String getUNGETQTY() {
+        return UNGETQTY;
+    }
+
+    public void setUNGETQTY(String UNGETQTY) {
+        this.UNGETQTY = UNGETQTY;
+    }
+}

+ 174 - 0
app/src/main/java/com/uas/pda_smart_com_lg/bean/JLTStorageInBean.java

@@ -0,0 +1,174 @@
+package com.uas.pda_smart_com_lg.bean;
+
+/**
+ * Created by RaoMeng on 2019/3/5
+ * Desc: 吉利通入库单实体类
+ */
+public class JLTStorageInBean {
+
+    /**
+     * PI_INOUTNO  : YS190227001
+     * PI_ID : 134
+     * PI_CLASS : 采购验收单
+     * PI_TITLE : 供应商
+     * PI_WHCODE : 入库仓库
+     * PI_STATUS : 已提交
+     */
+
+    private int POS;
+    private String PI_INOUTNO;
+    private long PI_ID;
+    private String PI_CLASS;
+    private String PI_TITLE;
+    private String PI_WHCODE;
+    private String PI_WHNAME;
+    private String PI_STATUS;
+    private String PI_SOURCETYPE;//单据来源,如果是PDA新增,不允许合并入库
+    private String PI_PDASTATUS;
+    private boolean isSelect = false;
+    private boolean isSpread = false;
+    private boolean isInventory = true;//是否启用条码库存
+    private String priorityMode;//优先采集模式: 整箱 BOX 单盘 PAN
+
+    public int getPOS() {
+        return POS;
+    }
+
+    public void setPOS(int POS) {
+        this.POS = POS;
+    }
+
+    public String getPI_INOUTNO() {
+        return PI_INOUTNO;
+    }
+
+    public void setPI_INOUTNO(String PI_INOUTNO) {
+        this.PI_INOUTNO = PI_INOUTNO;
+    }
+
+    public long getPI_ID() {
+        return PI_ID;
+    }
+
+    public void setPI_ID(long PI_ID) {
+        this.PI_ID = PI_ID;
+    }
+
+    public String getPI_CLASS() {
+        return PI_CLASS;
+    }
+
+    public void setPI_CLASS(String PI_CLASS) {
+        this.PI_CLASS = PI_CLASS;
+    }
+
+    public String getPI_TITLE() {
+        return PI_TITLE;
+    }
+
+    public void setPI_TITLE(String PI_TITLE) {
+        this.PI_TITLE = PI_TITLE;
+    }
+
+    public String getPI_WHCODE() {
+        return PI_WHCODE;
+    }
+
+    public void setPI_WHCODE(String PI_WHCODE) {
+        this.PI_WHCODE = PI_WHCODE;
+    }
+
+    public String getPI_STATUS() {
+        return PI_STATUS;
+    }
+
+    public void setPI_STATUS(String PI_STATUS) {
+        this.PI_STATUS = PI_STATUS;
+    }
+
+    public boolean isSelect() {
+        return isSelect;
+    }
+
+    public void setSelect(boolean select) {
+        isSelect = select;
+    }
+
+    public boolean isSpread() {
+        return isSpread;
+    }
+
+    public void setSpread(boolean spread) {
+        isSpread = spread;
+    }
+
+    public String getPI_WHNAME() {
+        return PI_WHNAME;
+    }
+
+    public void setPI_WHNAME(String PI_WHNAME) {
+        this.PI_WHNAME = PI_WHNAME;
+    }
+
+    public String getPI_SOURCETYPE() {
+        return PI_SOURCETYPE;
+    }
+
+    public void setPI_SOURCETYPE(String PI_SOURCETYPE) {
+        this.PI_SOURCETYPE = PI_SOURCETYPE;
+    }
+
+    public String getPI_PDASTATUS() {
+        return PI_PDASTATUS;
+    }
+
+    public void setPI_PDASTATUS(String PI_PDASTATUS) {
+        this.PI_PDASTATUS = PI_PDASTATUS;
+    }
+
+    public boolean isInventory() {
+        return isInventory;
+    }
+
+    public void setInventory(boolean inventory) {
+        isInventory = inventory;
+    }
+
+    public String getPriorityMode() {
+        return priorityMode;
+    }
+
+    public void setPriorityMode(String priorityMode) {
+        this.priorityMode = priorityMode;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        JLTStorageInBean that = (JLTStorageInBean) o;
+
+        if (PI_ID != that.PI_ID) return false;
+        if (PI_INOUTNO != null ? !PI_INOUTNO.equals(that.PI_INOUTNO) : that.PI_INOUTNO != null)
+            return false;
+        if (PI_CLASS != null ? !PI_CLASS.equals(that.PI_CLASS) : that.PI_CLASS != null)
+            return false;
+        if (PI_TITLE != null ? !PI_TITLE.equals(that.PI_TITLE) : that.PI_TITLE != null)
+            return false;
+        if (PI_WHCODE != null ? !PI_WHCODE.equals(that.PI_WHCODE) : that.PI_WHCODE != null)
+            return false;
+        return PI_STATUS != null ? PI_STATUS.equals(that.PI_STATUS) : that.PI_STATUS == null;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = PI_INOUTNO != null ? PI_INOUTNO.hashCode() : 0;
+        result = 31 * result + (int) (PI_ID ^ (PI_ID >>> 32));
+        result = 31 * result + (PI_CLASS != null ? PI_CLASS.hashCode() : 0);
+        result = 31 * result + (PI_TITLE != null ? PI_TITLE.hashCode() : 0);
+        result = 31 * result + (PI_WHCODE != null ? PI_WHCODE.hashCode() : 0);
+        result = 31 * result + (PI_STATUS != null ? PI_STATUS.hashCode() : 0);
+        return result;
+    }
+}

+ 103 - 0
app/src/main/java/com/uas/pda_smart_com_lg/bean/OutboundListBean.java

@@ -0,0 +1,103 @@
+package com.uas.pda_smart_com_lg.bean;
+
+/**
+ * Created by cjh on 2022-10-14
+ */
+public class OutboundListBean {
+    private String PI_INOUTNO;
+    private String PI_ID;
+    private String PI_CLASS;
+    private String PI_STATUS;
+    private String PI_STATUSCODE;
+    private String PI_WHCODE;
+    private String RN;
+    private String PI_INVOSTATUSCODE;
+    private String PI_INVOSTATUS;
+    public OutboundListBean(){
+    }
+
+    public OutboundListBean(String PI_INOUTNO, String PI_ID, String PI_CLASS, String PI_STATUS, String PI_STATUSCODE, String PI_WHCODE, String RN, String PI_INVOSTATUSCODE, String PI_INVOSTATUS) {
+        this.PI_INOUTNO = PI_INOUTNO;
+        this.PI_ID = PI_ID;
+        this.PI_CLASS = PI_CLASS;
+        this.PI_STATUS = PI_STATUS;
+        this.PI_STATUSCODE = PI_STATUSCODE;
+        this.PI_WHCODE = PI_WHCODE;
+        this.RN = RN;
+        this.PI_INVOSTATUSCODE=PI_INVOSTATUSCODE;
+        this.PI_INVOSTATUS=PI_INVOSTATUS;
+    }
+
+    public String getPI_INVOSTATUS() {
+        return PI_INVOSTATUS;
+    }
+
+    public void setPI_INVOSTATUS(String PI_INVOSTATUS) {
+        this.PI_INVOSTATUS = PI_INVOSTATUS;
+    }
+
+    public String getPI_INVOSTATUSCODE() {
+        return PI_INVOSTATUSCODE;
+    }
+
+    public void setPI_INVOSTATUSCODE(String PI_INVOSTATUSCODE) {
+        this.PI_INVOSTATUSCODE = PI_INVOSTATUSCODE;
+    }
+
+    public String getPI_INOUTNO() {
+        return PI_INOUTNO;
+    }
+
+    public void setPI_INOUTNO(String PI_INOUTNO) {
+        this.PI_INOUTNO = PI_INOUTNO;
+    }
+
+    public String getPI_ID() {
+        return PI_ID;
+    }
+
+    public void setPI_ID(String PI_ID) {
+        this.PI_ID = PI_ID;
+    }
+
+    public String getPI_CLASS() {
+        return PI_CLASS;
+    }
+
+    public void setPI_CLASS(String PI_CLASS) {
+        this.PI_CLASS = PI_CLASS;
+    }
+
+    public String getPI_STATUS() {
+        return PI_STATUS;
+    }
+
+    public void setPI_STATUS(String PI_STATUS) {
+        this.PI_STATUS = PI_STATUS;
+    }
+
+    public String getPI_STATUSCODE() {
+        return PI_STATUSCODE;
+    }
+
+    public void setPI_STATUSCODE(String PI_STATUSCODE) {
+        this.PI_STATUSCODE = PI_STATUSCODE;
+    }
+
+    public String getPI_WHCODE() {
+        return PI_WHCODE;
+    }
+
+    public void setPI_WHCODE(String PI_WHCODE) {
+        this.PI_WHCODE = PI_WHCODE;
+    }
+
+    public String getRN() {
+        return RN;
+    }
+
+    public void setRN(String RN) {
+        this.RN = RN;
+    }
+
+}

+ 10 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/IndexWareHouseContentFragment.java

@@ -144,6 +144,16 @@ public class IndexWareHouseContentFragment extends BaseFragment implements Adapt
                     getFragmentManager().beginTransaction().addToBackStack(null)
                             .replace(R.id.container_function_fragment, fragment).commit();
                     break;
+                case GloableParams.GRIDNAME_FINISHED_PRODUCT_STORAGE://成品入库
+                    fragment = new NewJltStorageInFilterListFragment();
+                    getFragmentManager().beginTransaction().addToBackStack(null)
+                            .replace(R.id.container_function_fragment, fragment).commit();
+                    break;
+                case GloableParams.GRIDNAME_FINISHED_PRODUCT_OUTBOUND://成品出库
+                    fragment = new OutboundLis_Two_fragment();
+                    getFragmentManager().beginTransaction().addToBackStack(null)
+                            .replace(R.id.container_function_fragment, fragment).commit();
+                    break;
             }
         }
     }

+ 204 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/JLTRevokeBoxFragment.java

@@ -0,0 +1,204 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.Button;
+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.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.activity.FunctionActivity;
+import com.uas.pda_smart_com_lg.adapter.JLTRevokeBoxAdapter;
+import com.uas.pda_smart_com_lg.bean.JLTStorageModelBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.listener.MyEditorActionListener;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+import com.uas.pda_smart_com_lg.view.RecyclerItemDecoration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2019/2/26
+ * Desc: 撤销采集箱页面
+ */
+public class JLTRevokeBoxFragment extends BaseFragment {
+    private ClearableEditText mBoxEditText;
+    private Button mConfirmButton;
+    private TextView mResultTextView;
+    private RecyclerView mRecyclerView;
+    private String mPiids;
+    private JLTRevokeBoxAdapter mJLTRevokeBoxAdapter;
+    private List<JLTStorageModelBean> mJLTStorageModelBeans;
+
+    public JLTRevokeBoxFragment() {
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_jlt_revoke_box;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("撤销采集箱");
+
+        mBoxEditText = root.findViewById(R.id.jlt_storage_in_box_scan_box_et);
+        mBoxEditText.requestFocus();
+        mConfirmButton = root.findViewById(R.id.jlt_storage_in_box_scan_confirm_btn);
+        mResultTextView = root.findViewById(R.id.jlt_storage_in_box_scan_result_tv);
+        mRecyclerView = root.findViewById(R.id.jlt_storage_in_box_scan_result_rv);
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        mRecyclerView.addItemDecoration(new RecyclerItemDecoration(1));
+
+        mJLTStorageModelBeans = new ArrayList<>();
+        mJLTRevokeBoxAdapter = new JLTRevokeBoxAdapter(mJLTStorageModelBeans);
+        mRecyclerView.setAdapter(mJLTRevokeBoxAdapter);
+    }
+
+    @Override
+    protected void initEvents() {
+        CommonUtil.setEditorActionListener(mBoxEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                getOutBoxData();
+            }
+        });
+
+        mConfirmButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                deleteOutBox();
+            }
+        });
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle arguments = getArguments();
+        if (arguments != null) {
+            mPiids = arguments.getString("pi_id");
+        }
+    }
+
+    private void deleteOutBox() {
+        String outBox = mBoxEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(outBox)) {
+            CommonUtil.toastNoRepeat(mActivity, "请输入需要撤销采集的箱号");
+            return;
+        }
+        mJLTStorageModelBeans.clear();
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_JLT_RECEIVING_DELETEOUTBOX)
+                .method(Request.Method.POST)
+                .tag(TAG + "getoutboxdata")
+                .addParam("pi_ids", mPiids)
+                .addParam("outBox", outBox)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                mJLTRevokeBoxAdapter.notifyDataSetChanged();
+                mResultTextView.setText("撤销箱号:" + outBox + "成功");
+                mBoxEditText.setText("");
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+
+                mJLTRevokeBoxAdapter.notifyDataSetChanged();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                mResultTextView.setText(failStr);
+            }
+        });
+    }
+
+    private void getOutBoxData() {
+        String outBox = mBoxEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(outBox)) {
+            CommonUtil.toastNoRepeat(mActivity, "请输入需要撤销采集的箱号");
+            return;
+        }
+
+        mJLTStorageModelBeans.clear();
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_JLT_RECEIVING_GETOUTBOXDATA)
+                .method(Request.Method.GET)
+                .tag(TAG + "getoutboxdata")
+                .addParam("pi_ids", mPiids)
+                .addParam("outBox", outBox)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+
+                try {
+                    mConfirmButton.setEnabled(true);
+                    mResultTextView.setText("");
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONObject dataObject = resultObject.getJSONObject("data");
+                    if (dataObject != null) {
+                        mResultTextView.setText("箱号:" + FastjsonUtil.getText(dataObject, "BI_OUTBOXCODE")
+                                + "\n入库单号:" + FastjsonUtil.getText(dataObject, "BI_INOUTNO"));
+
+                        JSONArray detailArray = dataObject.getJSONArray("DETAIL");
+
+                        if (detailArray != null && detailArray.size() > 0) {
+                            for (int i = 0; i < detailArray.size(); i++) {
+                                JSONObject detailObject = detailArray.getJSONObject(i);
+                                if (detailObject != null) {
+                                    JLTStorageModelBean jltStorageModelBean = new JLTStorageModelBean();
+                                    jltStorageModelBean.setModel(FastjsonUtil.getText(detailObject, "BI_MPN"));
+                                    jltStorageModelBean.setQuantity(FastjsonUtil.getText(detailObject, "BI_INQTY"));
+                                    jltStorageModelBean.setProdcode(FastjsonUtil.getText(detailObject, "BI_PRODCODE"));
+
+                                    mJLTStorageModelBeans.add(jltStorageModelBean);
+                                }
+                            }
+                        }
+                        mJLTRevokeBoxAdapter.notifyDataSetChanged();
+                    }
+                } catch (Exception e) {
+                    mJLTRevokeBoxAdapter.notifyDataSetChanged();
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+
+                mJLTRevokeBoxAdapter.notifyDataSetChanged();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                mResultTextView.setText(failStr);
+                mConfirmButton.setEnabled(false);
+            }
+        });
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+}

+ 1653 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/JLTStorageInBarcodeFragment.java

@@ -0,0 +1,1653 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v7.app.AlertDialog;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.text.format.DateFormat;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.AuthFailureError;
+import com.android.volley.DefaultRetryPolicy;
+import com.android.volley.Request;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.activity.FunctionActivity;
+import com.uas.pda_smart_com_lg.adapter.JLTSearchWhcodeAdapter;
+import com.uas.pda_smart_com_lg.adapter.NewJLTStorageInTodoAdapter;
+import com.uas.pda_smart_com_lg.adapter.SecondaryListAdapter;
+import com.uas.pda_smart_com_lg.application.PdaApplication;
+import com.uas.pda_smart_com_lg.bean.JLTBarcodeParseBean;
+import com.uas.pda_smart_com_lg.bean.JLTBrandEntity;
+import com.uas.pda_smart_com_lg.bean.JLTMpqEntity;
+import com.uas.pda_smart_com_lg.bean.JLTPkgEntity;
+import com.uas.pda_smart_com_lg.bean.JLTStorageModelBean;
+import com.uas.pda_smart_com_lg.bean.WhcodeBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.listener.MyEditorActionListener;
+import com.uas.pda_smart_com_lg.tools.SharedPreUtil;
+import com.uas.pda_smart_com_lg.tools.VolleyUtil;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.Constants;
+import com.uas.pda_smart_com_lg.util.DateFormatUtil;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.FragmentUtils;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.StringUtil;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.util.VollyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+import com.uas.pda_smart_com_lg.view.RecyclerItemDecoration;
+import com.uas.pda_smart_com_lg.view.business.CommonSelectPop;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
+
+import org.json.JSONException;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by RaoMeng on 2019/2/25
+ * Desc: 入库扫描条码
+ */
+public class JLTStorageInBarcodeFragment extends BaseFragment implements View.OnClickListener {
+    private String DIALOG_DATE = "DialogDate";
+    private static final int REQUEST_DATE = 11;
+    private static final int SCAN_BARCODE_CODE = 101;
+    private static final int SCAN_MODEL_CODE = 102;
+    private Button mMoreButton, mSaveButton, mNextButton;
+    private PopupWindow mMenuPopupWindow;
+    private View mMenuView;
+    private TextView mBoxTextView, mPanEditText;
+    private ImageView mCalendarImageView, mEnclosureFitlerIv, mModelScanIv, mBarcodeScanIv;
+    private ClearableEditText mDateEditText, mModelEditText, mQuantityEditText,
+            mLotEditText, mPoEditText, mEnclosureEditText, mMpqEditText, mBrandEditText, mBarcodeEditText;
+    private CheckBox mPoCheckBox;
+    private String mBoxNum, mPiInoutno, mPiid, mPiClass, mRealBoxNum, mDatecodebyparse,pd_whcode;
+    private JLTBarcodeParseBean mBarcodeParseBean;
+    private RecyclerView mEnclosureRecyclerView;
+    private Dialog mEnclosureDialog;
+    private OnFinishListener mOnFinishListener;
+    private List<WhcodeBean> mEnclosureList;
+    private JLTSearchWhcodeAdapter mSearchEnclosureAdapter;
+    private CommonSelectPop mBrandSelectPop, mEnclosureSelectPop, mMpqSelectPop;
+    private boolean isMpqDiv = false;
+    private List<JLTBrandEntity> mBrandEntities;
+    private List<JLTPkgEntity> mPkgEntities;
+    private List<JLTMpqEntity> mMpqEntities;
+    private TextView mTypeTextView;
+    private NewJLTStorageInTodoAdapter mStorageInTodoAdapter;
+    private RecyclerView mRecyclerView;
+    private CheckBox jlt_check_ok;
+    private LinearLayout jlt_storage_in_barcode_line;
+    private ClearableEditText jlt_storage_in_barcode_et;
+    private int mFocusId;
+    private RadioGroup mMenuRadioGroup;
+    private RadioButton mInfoRadioButton;
+    private RadioButton mSignRadioButton;
+    private LinearLayout jlt_line_edit;
+    private ClearableEditText jlt_edit_lotno;
+    private ClearableEditText jlt_edit_dataecode;
+    private ClearableEditText jlt_edit_dc;
+    private ClearableEditText jlt_edit_qty;
+    private String prodcode;
+    private Fragment mFragment;
+    private StringRequest mStringRequest;
+    private TextView mResultTextView;
+    private String jlt_storage_in_barcode_etstrim;
+    private CheckBox check_box_positions;
+    private CheckBox check_box_lono;
+    private CheckBox check_box_date;
+    private CheckBox check_box_dc;
+
+    public void setOnFinishListener(OnFinishListener onFinishListener) {
+        mOnFinishListener = onFinishListener;
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_jlt_storage_in_barcode;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("入库采集");
+
+        ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+
+        mMoreButton = (Button) getActivity().findViewById(R.id.btn_actionbar_more);
+        mCalendarImageView = root.findViewById(R.id.jlt_storage_in_barcode_date_iv);
+        mModelScanIv = root.findViewById(R.id.jlt_storage_in_barcode_model_scan_iv);
+        mDateEditText = root.findViewById(R.id.jlt_storage_in_barcode_date_et);
+        mBoxTextView = root.findViewById(R.id.jlt_storage_in_barcode_box_tv);
+        mBarcodeScanIv = root.findViewById(R.id.jlt_storage_in_barcode_scan_iv);
+        mBarcodeEditText = root.findViewById(R.id.jlt_storage_in_barcode_barcode_et);
+        mModelEditText = root.findViewById(R.id.jlt_storage_in_barcode_model_et);
+        mQuantityEditText = root.findViewById(R.id.jlt_storage_in_barcode_quantity_et);
+        mMpqEditText = root.findViewById(R.id.jlt_storage_in_barcode_mpq_et);
+        mLotEditText = root.findViewById(R.id.jlt_storage_in_barcode_lot_et);
+        mPanEditText = root.findViewById(R.id.jlt_storage_in_barcode_reel_et);
+        mPoEditText = root.findViewById(R.id.jlt_storage_in_barcode_po_et);
+        mBrandEditText = root.findViewById(R.id.jlt_storage_in_barcode_brand_et);
+        mSaveButton = root.findViewById(R.id.jlt_storage_in_barcode_save_btn);
+        mNextButton = root.findViewById(R.id.jlt_storage_in_barcode_next_btn);
+        mPoCheckBox = root.findViewById(R.id.jlt_storage_in_barcode_po_cb);
+        mResultTextView = root.findViewById(R.id.material_in_collect_result_tv);
+//        mModelEditText.requestFocus();
+        mBarcodeEditText.requestFocus();
+        mEnclosureEditText = root.findViewById(R.id.jlt_storage_in_barcode_enclosure_et);
+        mEnclosureFitlerIv = root.findViewById(R.id.jlt_storage_in_barcode_enclosure_filter_iv);
+
+        jlt_check_ok = root.findViewById(R.id.jlt_check_ok);
+        //条码框
+        jlt_storage_in_barcode_line = root.findViewById(R.id.jlt_storage_in_barcode_line);
+        jlt_storage_in_barcode_et = root.findViewById(R.id.jlt_storage_in_barcode_et);
+        //RadioGroup
+        mMenuRadioGroup = root.findViewById(R.id.jlt_pick_material_out_scan_menu_rg);
+        mInfoRadioButton = root.findViewById(R.id.jlt_pick_material_out_scan_info_rb);
+        mSignRadioButton = root.findViewById(R.id.jlt_pick_material_out_scan_sign_rb);
+        jlt_line_edit = root.findViewById(R.id.jlt_line_edit);
+
+        //输入框
+        //LotNo
+        jlt_edit_lotno = root.findViewById(R.id.jlt_edit_lotno);
+        jlt_edit_dataecode = root.findViewById(R.id.jlt_edit_dataecode);
+        jlt_edit_dc = root.findViewById(R.id.jlt_edit_DC);
+        jlt_edit_qty = root.findViewById(R.id.jlt_edit_QTY);
+        /**
+         * 勾选框
+         */
+        //仓位
+        check_box_positions = root.findViewById(R.id.check_box_positions);
+        //LoNo
+        check_box_lono = root.findViewById(R.id.check_box_lono);
+        //日期
+        check_box_date = root.findViewById(R.id.check_box_date);
+        //字符
+        check_box_dc = root.findViewById(R.id.check_box_dc);
+
+        mBarcodeParseBean = new JLTBarcodeParseBean();
+        mBarcodeParseBean.setCHECKPO("N");
+
+        View enclosureView = View.inflate(mActivity, R.layout.dialog_jlt_search_whcode, null);
+        mEnclosureRecyclerView = enclosureView.findViewById(R.id.item_jlt_search_whcode_rv);
+        mEnclosureRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        mEnclosureRecyclerView.addItemDecoration(new RecyclerItemDecoration(1));
+        mEnclosureList = new ArrayList<>();
+        mSearchEnclosureAdapter = new JLTSearchWhcodeAdapter(mEnclosureList);
+        mEnclosureRecyclerView.setAdapter(mSearchEnclosureAdapter);
+        mEnclosureDialog = new AlertDialog.Builder(mActivity).setView(enclosureView).create();
+
+        mBrandSelectPop = new CommonSelectPop(mActivity, "请选择品牌");
+        mEnclosureSelectPop = new CommonSelectPop(mActivity, "请选择封装方式");
+        mMpqSelectPop = new CommonSelectPop(mActivity, "请选择MPQ");
+
+
+        mTypeTextView = root.findViewById(R.id.jlt_storage_in_todo_list_tv);
+        mRecyclerView = root.findViewById(R.id.jlt_storage_in_todo_list_rv);
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        mRecyclerView.addItemDecoration(new RecyclerItemDecoration(2));
+        mStorageInTodoAdapter = new NewJLTStorageInTodoAdapter(mActivity);
+        mFocusId = root.findFocus().getId();
+        CheckBoxData();
+    }
+
+    @Override
+    protected void initEvents() {
+
+        mMoreButton.setOnClickListener(this);
+        mCalendarImageView.setOnClickListener(this);
+        mBarcodeScanIv.setOnClickListener(this);
+        mModelScanIv.setOnClickListener(this);
+        mSaveButton.setOnClickListener(this);
+        mNextButton.setOnClickListener(this);
+        mEnclosureEditText.setOnClickListener(this);
+        mEnclosureFitlerIv.setOnClickListener(this);
+
+        mModelEditText.addTextChangedListener(new MyTextWatcher(mModelEditText));
+        mQuantityEditText.addTextChangedListener(new MyTextWatcher(mQuantityEditText));
+        mMpqEditText.addTextChangedListener(new MyTextWatcher(mMpqEditText));
+        mDateEditText.addTextChangedListener(new MyTextWatcher(mDateEditText));
+        mLotEditText.addTextChangedListener(new MyTextWatcher(mLotEditText));
+        mPanEditText.addTextChangedListener(new MyTextWatcher(mPanEditText));
+        mPoEditText.addTextChangedListener(new MyTextWatcher(mPoEditText));
+        mBrandEditText.addTextChangedListener(new MyTextWatcher(mBrandEditText));
+        mEnclosureEditText.addTextChangedListener(new MyTextWatcher(mEnclosureEditText));
+
+        //扫描条码号回车
+        CommonUtil.setEditorActionListener(mBarcodeEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+//                barcodeParse(text);
+                confirmRequest(false);
+            }
+        });
+
+        //QTY回车
+        CommonUtil.setEditorActionListener(jlt_edit_qty, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                newlineqtyEnter();
+
+            }
+        });
+
+
+        //输入条码号回车
+        CommonUtil.setEditorActionListener(jlt_storage_in_barcode_et, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                newlinebarcodeEnter();
+
+            }
+        });
+
+        //仓位回车
+        CommonUtil.setEditorActionListener(mLotEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                newlinemLotEnter();
+
+            }
+        });
+        //LONO回车
+        CommonUtil.setEditorActionListener(jlt_edit_lotno, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                newlinemLotonEnter();
+
+            }
+        });
+        //日期回车
+        CommonUtil.setEditorActionListener(jlt_edit_dataecode, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                newlinemdateEnter();
+
+            }
+        });
+        //字符回车
+        CommonUtil.setEditorActionListener(jlt_edit_dc, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                clearableedittextjudge();
+            }
+        });
+
+
+
+//        CommonUtil.setEditorActionListener(mModelEditText, new MyEditorActionListener() {
+//            @Override
+//            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+//                modelParse();
+//            }
+//        });
+
+        CommonUtil.setEditorActionListener(mMpqEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                mBrandEditText.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        mBrandEditText.requestFocus();
+                    }
+                }, 100);
+            }
+        });
+
+        mPoCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                mBarcodeParseBean.setCHECKPO(isChecked ? "Y" : "N");
+            }
+        });
+
+        mSearchEnclosureAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
+                mBarcodeParseBean.setPRCODE(mEnclosureList.get(position).getWH_TYPE());
+
+                mEnclosureEditText.setText(mEnclosureList.get(position).getWH_CODE());
+                mEnclosureDialog.dismiss();
+            }
+        });
+
+        mBrandSelectPop.setOnDataSelectListener(new CommonSelectPop.OnDataSelectListener() {
+            @Override
+            public void onDataSelect(int position) {
+                mBrandSelectPop.dismiss();
+                JLTBrandEntity brandEntity = mBrandEntities.get(position);
+                selectPkg(brandEntity);
+            }
+        });
+
+        mEnclosureSelectPop.setOnDataSelectListener(new CommonSelectPop.OnDataSelectListener() {
+            @Override
+            public void onDataSelect(int position) {
+                JLTPkgEntity pkgEntity = mPkgEntities.get(position);
+                String qtyStr = mQuantityEditText.getText().toString().trim();
+                if (TextUtils.isEmpty(qtyStr)) {
+                    CommonUtil.toastNoRepeat(mActivity, "数量为空,请先采集数量信息");
+                    return;
+                }
+                try {
+                    mEnclosureSelectPop.dismiss();
+                    double qty = Double.parseDouble(qtyStr);
+                    selectMpq(qty, pkgEntity);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+
+        mMpqSelectPop.setOnDataSelectListener(new CommonSelectPop.OnDataSelectListener() {
+            @Override
+            public void onDataSelect(int position) {
+                mMpqSelectPop.dismiss();
+                double qty = mBarcodeParseBean.getQTY();
+                if (qty != -1) {
+                    double mpq = mMpqEntities.get(position).getMPQ();
+                    verifyPan(qty, mpq);
+                }
+            }
+        });
+
+        CommonUtil.setEditorActionListener(mQuantityEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                String mpq = mMpqEditText.getText().toString().trim();
+                String qty = mQuantityEditText.getText().toString().trim();
+
+                if (TextUtils.isEmpty(mpq)) {
+                    mMpqEditText.setText(qty);
+                }
+                mMpqEditText.requestFocus();
+                mMpqEditText.setSelection(mMpqEditText.getText().toString().trim().length());
+            }
+        });
+
+        mStorageInTodoAdapter.setOnSubItemClickListener(new NewJLTStorageInTodoAdapter.OnSubItemClickListener() {
+            @Override
+            public void onSubItemClick(JLTStorageModelBean jltStorageModelBean) {
+                List<SecondaryListAdapter.SecondaryListBean<String, JLTStorageModelBean>> datas = mStorageInTodoAdapter.getDatas();
+                if (datas.size()!=0){
+                    mModelEditText.setText(jltStorageModelBean.getPr_brand());
+                    mModelEditText.requestFocus();
+                    mModelEditText.setSelection(mModelEditText.getText().length());
+//                    mLotEditText.requestFocus();
+                }
+
+            }
+        });
+//        mMenuRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+//            @Override
+//            public void onCheckedChanged(RadioGroup group, int checkedId) {
+//                if (checkedId == R.id.jlt_pick_material_out_scan_info_rb) {
+//                    mRecyclerView.setVisibility(View.GONE);
+//                    jlt_line_edit.setVisibility(View.VISIBLE);
+//                } else if (checkedId == R.id.jlt_pick_material_out_scan_sign_rb) {
+//                    mRecyclerView.setVisibility(View.VISIBLE);
+//                    jlt_line_edit.setVisibility(View.GONE);
+//                }
+//            }
+//        });
+
+    }
+    public void CheckBoxData(){
+        String ischecheds = SharedPreUtil.getString(mActivity, Constants.JLTSTORAGEINISCHCKED, null);
+        if (StringUtil.isEmpty(ischecheds)){
+            jlt_check_ok.setChecked(true);
+            SharedPreUtil.saveString(mActivity, Constants.JLTSTORAGEINISCHCKED, "true");
+        }else {
+            if ("true".equals(ischecheds)){
+                jlt_check_ok.setChecked(true);
+                jlt_storage_in_barcode_line.setVisibility(View.VISIBLE);
+            }else {
+                jlt_check_ok.setChecked(false);
+                jlt_storage_in_barcode_line.setVisibility(View.GONE);
+            }
+        }
+
+        jlt_check_ok.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (isChecked==true){
+                    jlt_storage_in_barcode_line.setVisibility(View.VISIBLE);
+                    SharedPreUtil.saveString(mActivity, Constants.JLTSTORAGEINISCHCKED, "true");
+                }else {
+                    jlt_storage_in_barcode_line.setVisibility(View.GONE);
+                    SharedPreUtil.saveString(mActivity, Constants.JLTSTORAGEINISCHCKED, "false");
+                }
+            }
+        });
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            mBoxNum = bundle.getString("boxNum");
+            mPiid = bundle.getString("pi_id");
+            mPiClass = bundle.getString("pi_class");
+            mPiInoutno = bundle.getString("pi_inoutno");
+            pd_whcode = bundle.getString("pd_whcode");
+        }
+
+        mBoxTextView.setText(mPiInoutno);
+        mBarcodeParseBean.setOUTBOX(mBoxNum);
+
+        mTypeTextView.setText(mPiClass);
+
+    }
+
+
+    private void barcodeParse(String barcode) {
+        if (TextUtils.isEmpty(barcode)) {
+            return;
+        }
+        String mModelEditTexttrim = this.mModelEditText.getText().toString().trim();
+        String mLotEditTexttrim = mLotEditText.getText().toString().trim();
+        String mBarcodeEditTexttrim = mBarcodeEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(mBarcodeEditTexttrim)){
+            CommonUtil.toastNoRepeat(getContext(),"请输入条码号");
+            return;
+        }
+//        if (TextUtils.isEmpty(mModelEditTexttrim)){
+//            CommonUtil.toastNoRepeat(getContext(),"请输入品牌");
+//            return;
+//        }
+//        if (TextUtils.isEmpty(mLotEditTexttrim)){
+//            CommonUtil.toastNoRepeat(getContext(),"请输入仓位");
+//            return;
+//        }
+
+
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_RECEIVING_BARCODEPARSE2)
+                .method(Request.Method.POST)
+                .addParam("data", barcode)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                mModelEditText.requestFocus();
+                confirmRequest(false);
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                mBarcodeEditText.setText("");
+                mBarcodeEditText.requestFocus();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    private void modelParse() {
+        mEnclosureList.clear();
+        mEnclosureEditText.setText("");
+        String model = mModelEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(model)) {
+            return;
+        }
+        mBarcodeParseBean.setDATA(model);
+
+        progressDialog.show();
+
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_JLT_RECEIVING_BARCODEPARSE)
+                .method(Request.Method.POST)
+                .tag(TAG + "barcodeparse")
+                .addParam("data", model)
+                .addParam("pi_ids", mPiid)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mQuantityEditText.requestFocus();
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONObject dataObject = resultObject.getJSONObject("data");
+                    if (dataObject != null) {
+                        JSONArray brandArray = dataObject.getJSONArray("BRANDLIST");
+                        if (brandArray != null && brandArray.size() > 0) {
+                            JSONObject testBrand = brandArray.getJSONObject(0);
+                            if (TextUtils.isEmpty(mQuantityEditText.getText().toString().trim())
+                                    && TextUtils.isEmpty(FastjsonUtil.getText(testBrand, "QTY"))) {
+                                if (!TextUtils.isEmpty(FastjsonUtil.getText(testBrand, "PN"))
+                                        || !TextUtils.isEmpty(FastjsonUtil.getText(testBrand, "PKGLIST"))) {
+                                    CommonUtil.toastNoRepeat(mActivity, "请先采集数量");
+                                    return;
+                                }
+                            }
+
+                            if (mBrandEntities == null) {
+                                mBrandEntities = new ArrayList<>();
+                            } else {
+                                mBrandEntities.clear();
+                            }
+                            for (int i = 0; i < brandArray.size(); i++) {
+                                JSONObject brandObject = brandArray.getJSONObject(i);
+                                if (brandObject != null) {
+                                    JLTBrandEntity brandEntity = new JLTBrandEntity();
+                                    brandEntity.setBRAND(FastjsonUtil.getText(brandObject, "BRAND"));
+                                    brandEntity.setORDERCODE(FastjsonUtil.getText(brandObject, "ORDERCODE"));
+                                    if (!TextUtils.isEmpty(FastjsonUtil.getText(brandObject, "QTY"))) {
+                                        brandEntity.setQTY(FastjsonUtil.getDouble(brandObject, "QTY"));
+                                    } else {
+                                        brandEntity.setQTY(mBarcodeParseBean.getQTY());
+                                    }
+                                    brandEntity.setDATECODE(FastjsonUtil.getText(brandObject, "DATECODE"));
+                                    brandEntity.setLOTNO(FastjsonUtil.getText(brandObject, "LOTNO"));
+                                    brandEntity.setOUTBOX(FastjsonUtil.getText(brandObject, "OUTBOX"));
+                                    brandEntity.setDATECODEBYPARSE(FastjsonUtil.getText(brandObject, "DATECODEBYPARSE"));
+                                    brandEntity.setIsCheck(FastjsonUtil.getBoolean(brandObject, "isCheck"));
+                                    brandEntity.setPN(FastjsonUtil.getText(brandObject, "PN"));
+
+                                    JSONArray pkgArray = brandObject.getJSONArray("PKGLIST");
+                                    List<JLTPkgEntity> pkgEntities = null;
+                                    if (pkgArray != null && pkgArray.size() > 0) {
+                                        pkgEntities = new ArrayList<>();
+                                        for (int j = 0; j < pkgArray.size(); j++) {
+                                            JSONObject pkgObject = pkgArray.getJSONObject(j);
+                                            if (pkgObject != null) {
+                                                JLTPkgEntity pkgEntity = new JLTPkgEntity();
+
+                                                pkgEntity.setPR_CODE(FastjsonUtil.getText(pkgObject, "PR_CODE"));
+                                                pkgEntity.setPR_PKG(FastjsonUtil.getText(pkgObject, "PR_PKG"));
+                                                pkgEntity.setPR_FBBZL_USER(FastjsonUtil.getInt(pkgObject, "PR_FBBZL_USER"));
+
+                                                JSONArray mpqArray = pkgObject.getJSONArray("MPQ");
+                                                List<JLTMpqEntity> mpqEntities = null;
+                                                if (mpqArray != null && mpqArray.size() > 0) {
+                                                    mpqEntities = new ArrayList<>();
+                                                    for (int k = 0; k < mpqArray.size(); k++) {
+                                                        JLTMpqEntity mpqEntity = new JLTMpqEntity();
+                                                        Double mpq = mpqArray.getDouble(k);
+                                                        mpqEntity.setMPQ(mpq);
+
+                                                        mpqEntities.add(mpqEntity);
+                                                    }
+                                                }
+                                                pkgEntity.setMPQLIST(mpqEntities);
+
+                                                pkgEntities.add(pkgEntity);
+                                            }
+                                        }
+                                    }
+                                    brandEntity.setPKGLIST(pkgEntities);
+
+                                    mBrandEntities.add(brandEntity);
+                                }
+                            }
+                        }
+                        if (mBrandEntities.size() == 1) {
+                            JLTBrandEntity brandEntity = (JLTBrandEntity) mBrandEntities.get(0);
+                            selectPkg(brandEntity);
+                        } else if (mBrandEntities.size() > 1) {
+                            mBrandSelectPop.setData(mBrandEntities);
+                            mBrandSelectPop.showPopupWindow();
+                        }
+
+/*
+                        JSONArray pkgArray = dataObject.getJSONArray("PKGLIST");
+                        if (pkgArray != null && pkgArray.size() > 0) {
+                            for (int i = 0; i < pkgArray.size(); i++) {
+                                JSONObject pkgObject = pkgArray.getJSONObject(i);
+                                if (pkgObject != null) {
+                                    WhcodeBean enclosureBean = new WhcodeBean();
+                                    enclosureBean.setWhCode(FastjsonUtil.getText(pkgObject, "PR_PKG"));
+                                    enclosureBean.setPrcode(FastjsonUtil.getText(pkgObject, "PR_CODE"));
+
+                                    mEnclosureList.add(enclosureBean);
+                                }
+                            }
+                        }
+                        mSearchEnclosureAdapter.notifyDataSetChanged();*/
+
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+
+                mModelEditText.setText("");
+                mModelEditText.requestFocus();
+                mSearchEnclosureAdapter.notifyDataSetChanged();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    public void setValuableText(TextView view, String text) {
+        if (!TextUtils.isEmpty(text)) {
+            view.setText(text);
+        }
+    }
+
+    private void selectPkg(JLTBrandEntity brandEntity) {
+        setValuableText(mBrandEditText, brandEntity.getBRAND());
+        setValuableText(mPoEditText, brandEntity.getORDERCODE());
+        String po = mPoEditText.getText().toString().trim();
+        mPoCheckBox.setChecked(!TextUtils.isEmpty(po));
+        double qty = brandEntity.getQTY();
+        if (qty > 0) {
+            mQuantityEditText.setText(CommonUtil.doubleFormat(qty));
+        }
+        setValuableText(mDateEditText,
+                TextUtils.isEmpty(brandEntity.getDATECODEBYPARSE()) ? brandEntity.getDATECODE() : brandEntity.getDATECODEBYPARSE());
+        setValuableText(mLotEditText, brandEntity.getLOTNO());
+        setValuableText(mModelEditText, brandEntity.getPN());
+
+        if (!TextUtils.isEmpty(brandEntity.getOUTBOX())) {
+            mRealBoxNum = brandEntity.getOUTBOX();
+        }
+        if (!TextUtils.isEmpty(brandEntity.getDATECODEBYPARSE())) {
+            mDatecodebyparse = brandEntity.getDATECODEBYPARSE();
+        }
+
+        List<JLTPkgEntity> pkglist = brandEntity.getPKGLIST();
+        mPkgEntities = pkglist;
+        if (mPkgEntities.size() == 1) {
+            JLTPkgEntity pkgEntity = mPkgEntities.get(0);
+
+            selectMpq(qty, pkgEntity);
+        } else if (mPkgEntities.size() > 1) {
+            mEnclosureSelectPop.setData(mPkgEntities);
+            mEnclosureSelectPop.showPopupWindow();
+        }
+    }
+
+    private void selectMpq(double qty, JLTPkgEntity pkgEntity) {
+        mBarcodeParseBean.setPRCODE(pkgEntity.getPR_CODE());
+        mEnclosureEditText.setText(pkgEntity.getPR_PKG());
+        isMpqDiv = pkgEntity.getPR_FBBZL_USER() == 0;
+
+        List<JLTMpqEntity> mpqlist = pkgEntity.getMPQLIST();
+        if (mpqlist == null) {
+            return;
+        }
+        List<JLTMpqEntity> requireMpqs = new ArrayList<>();
+        for (int i = 0; i < mpqlist.size(); i++) {
+            JLTMpqEntity mpqEntity = mpqlist.get(i);
+            try {
+                double mpqNum = mpqEntity.getMPQ();
+                double v = qty / mpqNum;
+                if (CommonUtil.isIntegerForDouble(v)) {
+                    requireMpqs.add(mpqEntity);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                continue;
+            }
+        }
+        if (requireMpqs.size() == 1) {
+            verifyPan(qty, requireMpqs.get(0).getMPQ());
+        } else if (isMpqDiv) {
+            if (requireMpqs.size() == 0) {
+                CommonUtil.toastNoRepeat(mActivity, "采集数不满足最小包,请重新采集!");
+            } else {
+                showMpqPop(requireMpqs);
+            }
+        } else if (mpqlist.size() > 0) {
+            if (mpqlist.size() == 1) {
+                verifyPan(qty, mpqlist.get(0).getMPQ());
+            } else {
+                showMpqPop(mpqlist);
+            }
+        }
+    }
+
+    private void showMpqPop(List<JLTMpqEntity> mpqlist) {
+        mMpqEntities = mpqlist;
+        mMpqSelectPop.setData(mMpqEntities);
+        mMpqSelectPop.showPopupWindow();
+    }
+
+    private void verifyPan(double qty, double mpq) {
+        try {
+            double pan = qty / mpq;
+            if (isMpqDiv) {
+                if (!CommonUtil.isIntegerForDouble(pan)) {
+                    CommonUtil.toastNoRepeat(mActivity, "采集数不满足最小包,请重新采集!");
+                } else {
+                    mPanEditText.setText(CommonUtil.doubleFormat(Math.ceil(pan)));
+                    mMpqEditText.setText(CommonUtil.doubleFormat(mpq));
+                }
+            } else {
+                mPanEditText.setText(CommonUtil.doubleFormat(Math.ceil(pan)));
+                mMpqEditText.setText(CommonUtil.doubleFormat(mpq));
+            }
+        } catch (Exception e) {
+            mPanEditText.setText(0);
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.btn_actionbar_more:
+                showMoreMenu();
+                break;
+            case R.id.jlt_storage_in_barcode_date_iv:
+                FragmentManager fragmentManager = getFragmentManager();
+                DatePickerFragment dialog = new DatePickerFragment();
+                dialog.setTargetFragment(JLTStorageInBarcodeFragment.this, REQUEST_DATE);
+                dialog.show(fragmentManager, DIALOG_DATE);
+                break;
+            case R.id.jlt_storage_in_barcode_scan_iv:
+                CommonUtil.scanBarcode(mActivity, JLTStorageInBarcodeFragment.this, SCAN_BARCODE_CODE);
+                break;
+            case R.id.jlt_storage_in_barcode_model_scan_iv:
+                CommonUtil.scanBarcode(mActivity, JLTStorageInBarcodeFragment.this, SCAN_MODEL_CODE);
+                break;
+            case R.id.jlt_storage_in_barcode_save_btn:
+//                saveBarcode(false, true);
+
+                clearableedittextjudge();
+                break;
+            case R.id.jlt_storage_in_barcode_next_btn:
+                saveBarcode(true, true);
+                break;
+            case R.id.jlt_storage_in_barcode_enclosure_et:
+            case R.id.jlt_storage_in_barcode_enclosure_filter_iv:
+                if (mPkgEntities.size() <= 1) {
+//                    CommonUtil.toastNoRepeat(mActivity, "封装形式为空");
+                } else {
+                    mEnclosureSelectPop.showPopupWindow();
+                }
+                break;
+            default:
+                break;
+        }
+    }
+    //输入框回车换行
+    public void newlineqtyEnter(){
+        String jlt_storage_in_barcode_ets = jlt_storage_in_barcode_et.getText().toString().trim();
+        String mLotEditTexts = mLotEditText.getText().toString().trim();//仓位
+        String jlt_edit_lotnos = jlt_edit_lotno.getText().toString().trim();//LoNo
+        String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
+        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
+        if (jlt_check_ok.isChecked()==true&&jlt_storage_in_barcode_ets.isEmpty()){
+            jlt_storage_in_barcode_et.requestFocus();
+            return;
+        }
+        if (check_box_positions.isChecked()==true&&mLotEditTexts.isEmpty()){
+            mLotEditText.requestFocus();
+            return;
+        }
+        if (check_box_lono.isChecked()==true&&jlt_edit_lotnos.isEmpty()){
+            jlt_edit_lotno.requestFocus();
+            return;
+        }
+        if (check_box_date.isChecked()==true&&jlt_edit_dataecodes.isEmpty()){
+            jlt_edit_dataecode.requestFocus();
+            return;
+        }
+        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
+            jlt_edit_dc.requestFocus();
+            return;
+        }
+        clearableedittextjudge();
+    }
+    public void newlinebarcodeEnter(){
+        String mLotEditTexts = mLotEditText.getText().toString().trim();//仓位
+        String jlt_edit_lotnos = jlt_edit_lotno.getText().toString().trim();//LoNo
+        String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
+        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
+        if (check_box_positions.isChecked()==true&&mLotEditTexts.isEmpty()){
+            mLotEditText.requestFocus();
+            return;
+        }
+        if (check_box_lono.isChecked()==true&&jlt_edit_lotnos.isEmpty()){
+            jlt_edit_lotno.requestFocus();
+            return;
+        }
+        if (check_box_date.isChecked()==true&&jlt_edit_dataecodes.isEmpty()){
+            jlt_edit_dataecode.requestFocus();
+            return;
+        }
+        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
+            jlt_edit_dc.requestFocus();
+            return;
+        }
+        clearableedittextjudge();
+    }
+    public void newlinemLotEnter(){
+        String jlt_edit_lotnos = jlt_edit_lotno.getText().toString().trim();//LoNo
+        String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
+        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
+        if (check_box_lono.isChecked()==true&&jlt_edit_lotnos.isEmpty()){
+            jlt_edit_lotno.requestFocus();
+            return;
+        }
+        if (check_box_date.isChecked()==true&&jlt_edit_dataecodes.isEmpty()){
+            jlt_edit_dataecode.requestFocus();
+            return;
+        }
+        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
+            jlt_edit_dc.requestFocus();
+            return;
+        }
+        clearableedittextjudge();
+    }
+    public void newlinemLotonEnter(){
+        String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
+        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
+        if (check_box_date.isChecked()==true&&jlt_edit_dataecodes.isEmpty()){
+            jlt_edit_dataecode.requestFocus();
+            return;
+        }
+        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
+            jlt_edit_dc.requestFocus();
+            return;
+        }
+        clearableedittextjudge();
+    }
+    public void newlinemdateEnter(){
+        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
+        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
+            jlt_edit_dc.requestFocus();
+            return;
+        }
+        clearableedittextjudge();
+    }
+    public void clearableedittextjudge(){
+        String mBarcodeEditTexts = mBarcodeEditText.getText().toString().trim();//采集条码号
+        String jlt_storage_in_barcode_ets = jlt_storage_in_barcode_et.getText().toString().trim();//条码号
+        String mLotEditTexts = mLotEditText.getText().toString().trim();//仓位
+        String jlt_edit_lotnos = jlt_edit_lotno.getText().toString().trim();//LoNo
+        String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
+        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
+        String jlt_edit_qtys = jlt_edit_qty.getText().toString().trim();//QTY
+        if (check_box_positions.isChecked()==true&&mLotEditTexts.isEmpty()){
+            CommonUtil.toastNoRepeat(mActivity, "仓位不可为空");
+            return;
+        }
+        if (check_box_lono.isChecked()==true&&jlt_edit_lotnos.isEmpty()){
+            CommonUtil.toastNoRepeat(mActivity, "LoNo不可为空");
+            return;
+        }
+        if (check_box_date.isChecked()==true&&jlt_edit_dataecodes.isEmpty()){
+            CommonUtil.toastNoRepeat(mActivity, "日期不可为空");
+            return;
+        }
+        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
+            CommonUtil.toastNoRepeat(mActivity, "字符不可为空");
+            return;
+        }
+
+        Savebtn_barcode(mBarcodeEditTexts,jlt_storage_in_barcode_ets,mLotEditTexts,jlt_edit_lotnos,jlt_edit_dataecodes,jlt_edit_dcs,jlt_edit_qtys);
+    }
+    public void Savebtn_barcode(String mBarcodeEditTexts,String jlt_storage_in_barcode_ets,String mLotEditTexts,String jlt_edit_lotnos,
+                                String jlt_edit_dataecodes,String jlt_edit_dcs,String jlt_edit_qtys){
+        if (jlt_edit_qtys.isEmpty()){
+            CommonUtil.toastNoRepeat(mActivity, "数量不可为空");
+            return;
+        }
+
+        if (mBarcodeEditTexts.isEmpty()){
+            CommonUtil.toastNoRepeat(mActivity, "条码号不可为空");
+            return;
+        }
+
+        JSONObject obj = new JSONObject();
+        obj.put("LOCATION", mLotEditTexts);
+        obj.put("PRODCODE", prodcode);
+        obj.put("PI_IDS", mPiid);
+        if (jlt_check_ok.isChecked()==true){
+            if (jlt_storage_in_barcode_ets.isEmpty()){
+                CommonUtil.toastNoRepeat(mActivity, "条码号不可为空");
+                return;
+            }
+        }else if(jlt_check_ok.isChecked()==false){
+                jlt_storage_in_barcode_et.setText(mBarcodeEditTexts);
+                jlt_storage_in_barcode_ets = jlt_storage_in_barcode_et.getText().toString().trim();
+        }
+
+        obj.put("BARCODE", jlt_storage_in_barcode_ets);
+        obj.put("LOTNO", jlt_edit_lotnos);
+        obj.put("DC", jlt_edit_dcs);
+        obj.put("RE_MADEDATE",jlt_edit_dataecodes);
+        obj.put("CONTENT", mBarcodeEditTexts);
+        obj.put("QTY", jlt_edit_qtys);
+        String stores = obj.toString();
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_PDAIO_PUT_SAVEBARCODE2CONFIRM)
+                .method(Request.Method.POST)
+                .tag(TAG + "savebarcode")
+                .addParam("store", stores)
+                .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);
+                    JSONObject dataObject = resultObject.getJSONObject("data");
+                        CommonUtil.toastNoRepeat(mActivity, "归属入库单:"
+                                + FastjsonUtil.getText(dataObject, "INOUTNO")
+                                + "成功");
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                mBarcodeEditText.setText("");
+                mBarcodeEditText.requestFocus();
+                jlt_storage_in_barcode_et.setText("");
+                jlt_edit_lotno.setText("");
+                jlt_edit_dataecode.setText("");
+                jlt_edit_dc.setText("");
+                jlt_edit_qty.setText("");
+//                resetState();
+                mBarcodeEditText.requestFocus();
+
+
+            }
+
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+    private void saveBarcode(boolean exist, boolean checkDate) {
+        if (TextUtils.isEmpty(mBarcodeParseBean.getPN()) ||
+                TextUtils.isEmpty(mBarcodeParseBean.getBRAND()) ||
+                TextUtils.isEmpty(mBarcodeParseBean.getMPQ())) {
+            CommonUtil.toastNoRepeat(mActivity, "请采集条码获取必填数据");
+            return;
+        }
+        if (mPoCheckBox.isChecked() && TextUtils.isEmpty(mBarcodeParseBean.getORDERCODE())) {
+            CommonUtil.toastNoRepeat(mActivity, "已勾选PO校验,PO号不允许为空");
+            return;
+        }
+        /*if (mBoxNum == null || !mBoxNum.equals(mRealBoxNum)) {
+            CommonUtil.toastNoRepeat(mActivity, "当前采集的条码不属于当前箱号");
+            return;
+        }*/
+        if (mEnclosureList.size() > 0 && TextUtils.isEmpty(mBarcodeParseBean.getPR_PKG())) {
+            CommonUtil.toastNoRepeat(mActivity, "请选择封装形式");
+            return;
+        }
+//        String qtyStr = mQuantityEditText.getText().toString().trim();
+//        if (TextUtils.isEmpty(qtyStr)) {
+//            CommonUtil.toastNoRepeat(mActivity, "数量为空,请先采集数量信息");
+//            return;
+//        }
+//        String mpqStr = mMpqEditText.getText().toString().trim();
+//        if (TextUtils.isEmpty(mpqStr)) {
+//            CommonUtil.toastNoRepeat(mActivity, "最小包为空,请采集最小包");
+//            return;
+//        }
+//        if (isMpqDiv) {
+//            try {
+//                double qty = Double.parseDouble(qtyStr);
+//                double mpq = Double.parseDouble(mpqStr);
+//                double pan = qty / mpq;
+//                if (!CommonUtil.isIntegerForDouble(pan)) {
+//                    CommonUtil.toastNoRepeat(mActivity, "采集数不满足最小包,请重新采集!");
+//                    return;
+//                }
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        }
+
+        if (checkDate && !TextUtils.isEmpty(mDatecodebyparse)) {
+            long limitDays = SharedPreUtil.getInt(mActivity, Constants.FLAG.JLT_VALID_DAYS_CACHE, 0);
+            int daysInterval = DateFormatUtil.getDaysInterval(mDatecodebyparse, DateFormatUtil.long2Str("yyyyMMdd")
+                    , DateFormatUtil.getFormat("yyyyMMdd"));
+
+            if (limitDays != 0 && daysInterval > limitDays) {
+                new AlertDialog.Builder(mActivity)
+                        .setTitle("提示")
+                        .setMessage("入库校验 生产日期(" + mDatecodebyparse
+                                + ")+ 有效天数(" + limitDays
+                                + ")<当天,是否确认入库?")
+                        .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                confirmRequest(exist);
+                            }
+                        })
+                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                mBarcodeEditText.setText("");
+                                resetState();
+                            }
+                        }).create().show();
+            } else {
+                confirmRequest(exist);
+            }
+        } else {
+            confirmRequest(exist);
+        }
+    }
+    //扫描 条码号
+    private void confirmRequest(boolean exist) {
+        String mModelEditTexttrim = this.mModelEditText.getText().toString().trim();
+        String mLotEditTexttrim = mLotEditText.getText().toString().trim();
+        String mBarcodeEditTexttrim = mBarcodeEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(mBarcodeEditTexttrim)){
+            CommonUtil.toastNoRepeat(getContext(),"请输入条码号");
+            return;
+        }
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_RECEIVING_SAVEBARCODE2)
+                .method(Request.Method.POST)
+                .tag(TAG + "savebarcode")
+                .addParam("pi_ids", mPiid)
+                .addParam("brand", mModelEditTexttrim)
+                .addParam("location", mLotEditTexttrim)
+                .addParam("barcode", mBarcodeEditText.getText().toString().trim())
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                    String result = o.toString();
+                    Log.e("result",result);
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONObject dataObject = resultObject.getJSONObject("data");
+                    if (dataObject != null) {
+                        String lotno = FastjsonUtil.getText(dataObject, "LOTNO");
+                        String datecode = FastjsonUtil.getText(dataObject, "DATECODE");
+                        String dc = FastjsonUtil.getText(dataObject, "DC");
+                        String qty = FastjsonUtil.getText(dataObject, "QTY");
+                        prodcode = FastjsonUtil.getText(dataObject, "PRODCODE");
+                        String lc = FastjsonUtil.getText(dataObject, "LC");
+                        mLotEditText.setText(lc);
+
+                        jlt_edit_lotno.setText(lotno);
+                        jlt_edit_dataecode.setText(datecode);
+                        jlt_edit_dc.setText(dc);
+                        jlt_edit_qty.setText(qty);
+                    }
+                    if (jlt_check_ok.isChecked()==true&&jlt_storage_in_barcode_et.getText().toString().trim().isEmpty()){
+                        jlt_storage_in_barcode_et.requestFocus();
+                        jlt_storage_in_barcode_et.setSelection(jlt_edit_qty.getText().toString().trim().length());
+                    }else {
+                        newlinebarcodeEnter();
+                    }
+
+
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                mBarcodeEditText.setText(null);
+                mBarcodeEditText.requestFocus();
+//                check_box_positions.setChecked(true);
+//                check_box_lono.setChecked(true);
+//                check_box_date.setChecked(true);
+//                check_box_dc.setChecked(true);
+            }
+        });
+    }
+    //清空所有输入框
+    private void resetState() {
+        mModelEditText.setText("");
+        mQuantityEditText.setText("");
+        mMpqEditText.setText("");
+        mDateEditText.setText("");
+        mLotEditText.setText("");
+        mPanEditText.setText("");
+        mPoEditText.setText("");
+        mBrandEditText.setText("");
+        mEnclosureEditText.setText("");
+
+        mBarcodeEditText.requestFocus();
+    }
+
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (resultCode != Activity.RESULT_OK) {
+            return;
+        }
+
+        if (requestCode == REQUEST_DATE) {
+            try {
+                Date date = (Date) data.getSerializableExtra("extra_date");
+                String formatDate = DateFormat.format("yyyy-MM-dd", date).toString();
+                jlt_edit_dataecode.setText(formatDate);
+                jlt_edit_dataecode.setSelection(jlt_edit_dataecode.getText().toString().trim().length());
+                mDatecodebyparse = formatDate;
+            } catch (Exception e) {
+                jlt_edit_dataecode.setText("");
+            }
+        }
+        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());
+                barcodeParse(result);
+            }
+        }
+        if (requestCode == SCAN_MODEL_CODE && data != null) {
+            if (data.getExtras() != null) {
+                String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
+                mModelEditText.setText(result);
+                mModelEditText.setSelection(result.length());
+                modelParse();
+            }
+        }
+        if (mFocusId==R.id.jlt_storage_in_barcode_et){
+            String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
+            jlt_storage_in_barcode_et.setText(result);
+            jlt_storage_in_barcode_et.setSelection(result.length());
+        }
+    }
+
+    /**
+     * 展示扩展菜单
+     */
+    private void showMoreMenu() {
+        if (mMenuView == null) {
+            mMenuView = View.inflate(mActivity, R.layout.pop_jlt_storage_in_box_menu, null);
+        }
+        Button todoListBtn = (Button) mMenuView.findViewById(R.id.pop_jlt_storage_in_box_menu_1);
+        Button doneListInBtn = (Button) mMenuView.findViewById(R.id.pop_jlt_storage_in_box_menu_2);
+        Button revokeCollectBtn = (Button) mMenuView.findViewById(R.id.pop_jlt_storage_in_box_menu_3);
+        Button postBtn = (Button) mMenuView.findViewById(R.id.pop_jlt_storage_in_box_menu_4);
+
+        Button pop_material_in_menu_1 = (Button) mMenuView.findViewById(R.id.pop_material_in_menu_1);
+        Button pop_material_in_menu_5 = (Button) mMenuView.findViewById(R.id.pop_material_in_menu_5);
+        Button pop_material_in_menu_2 = (Button) mMenuView.findViewById(R.id.pop_material_in_menu_2);
+        Button pop_toadoptprompt = (Button) mMenuView.findViewById(R.id.pop_toadoptprompt);
+        Button pop_material_in_menu_back = (Button) mMenuView.findViewById(R.id.pop_material_in_menu_back);
+
+        postBtn.setVisibility(View.GONE);
+        todoListBtn.setVisibility(View.GONE);
+        revokeCollectBtn.setText("确认入库");
+        revokeCollectBtn.setVisibility(View.GONE);
+        pop_toadoptprompt.setOnClickListener(new View.OnClickListener() {//待采提示
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, ToadoptpromptFragment.newInstance(mPiid,mPiInoutno));
+            }
+        });
+
+        todoListBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                JLTStorageInTodoListFragment jltStorageInTodoListFragment = new JLTStorageInTodoListFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", mPiid);
+                bundle.putString("pi_class", mPiClass);
+                jltStorageInTodoListFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, jltStorageInTodoListFragment);
+            }
+        });
+
+        doneListInBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                JLTStorageInDoneListFragment jltStorageInDoneListFragment = new JLTStorageInDoneListFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", mPiid);
+                bundle.putString("pi_class", mPiClass);
+                jltStorageInDoneListFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, jltStorageInDoneListFragment);
+            }
+        });
+
+        revokeCollectBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                confirmStorageIn(false);
+            }
+        });
+        pop_material_in_menu_back.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+//                ((FunctionActivity) getActivity()).setScanIvVisible(false);
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", mPiid);
+                bundle.putString("pi_inoutno", mPiInoutno);
+                bundle.putString("pd_whcode", pd_whcode);
+                bundle.putString("whichpage", "materialin");
+                mFragment = new MaterialOutRevocationStockFragment();
+                mFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, mFragment);
+            }
+        });
+
+        postBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                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();
+                                VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                                        .url(GloableParams.ADDRESS_PDAIO_CONFIRMPOST)
+                                        .method(Request.Method.POST)
+                                        .addParam("piid", mPiid)
+                                        .tag(TAG + "confirmpost")
+                                        .build(), 30 * 1000, new HttpCallback() {
+                                    @Override
+                                    public void onSuccess(int flag, Object o) throws Exception {
+                                        progressDialog.dismiss();
+                                        CommonUtil.toastNoRepeat(mActivity, "过账成功");
+                                        getActivity().getSupportFragmentManager().popBackStackImmediate();
+                                    }
+
+                                    @Override
+                                    public void onFail(int flag, String failStr) throws Exception {
+                                        progressDialog.dismiss();
+                                        CommonUtil.toastNoRepeat(mActivity, failStr);
+                                    }
+                                });
+                            }
+                        }).create().show();
+            }
+        });
+        //确认入库
+        pop_material_in_menu_1.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                confirmIn();
+            }
+        });
+        //已采集列表
+        pop_material_in_menu_5.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, StorageInBarDetailsCollectListFragment.newInstance(mPiid, pd_whcode,mPiClass));
+            }
+        });
+        //撤销入库
+        pop_material_in_menu_2.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                mBarcodeEditText.setOnFocusChangeListener(null);
+                jlt_storage_in_barcode_et.setOnFocusChangeListener(null);
+                ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+//                ((FunctionActivity) getActivity()).setScanIvVisible(false);
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", mPiid);
+                bundle.putString("pi_inoutno", mPiInoutno);
+                bundle.putString("pd_whcode", pd_whcode);
+                bundle.putString("whichpage", "materialin");
+                mFragment = new MaterialOutRevocationStockFragment();
+                mFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, mFragment);
+            }
+        });
+
+
+        if (mMenuPopupWindow == null) {
+            mMenuPopupWindow = new PopupWindow(mMenuView, 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(mActivity, 0.5f);
+        mMenuPopupWindow.showAsDropDown(mMoreButton);
+    }
+    private void confirmIn() {
+        progressDialog.show();
+        String url = GloableParams.ADDRESS_INMATERIAL_CONFIRM_IN + "?pi_id=" + mPiid + "&whcode=" + pd_whcode;
+
+        PdaApplication.mRequestQueue.cancelAll(TAG + "confirmin");
+
+        mStringRequest = new StringRequest(Request.Method.GET, url,
+                new Response.Listener<String>() {
+                    @Override
+                    public void onResponse(String s) {
+                        progressDialog.dismiss();
+//                        mResultTextView.setVisibility(View.VISIBLE);
+                        try {
+                            org.json.JSONObject resultObject = new org.json.JSONObject(s);
+//                            mResultTextView.setText(resultObject.optString("data"));
+                        } catch (JSONException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                },
+                new Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError volleyError) {
+                        progressDialog.dismiss();
+                        mResultTextView.setVisibility(View.VISIBLE);
+                        String errorToast = CommonUtil.showErrorToast(volleyError, true);
+                        mResultTextView.setText(errorToast);
+                    }
+                }) {
+            @Override
+            public Map<String, String> getHeaders() throws AuthFailureError {
+                return VolleyUtil.getVolleyUtil().setCookies();
+            }
+        };
+        mStringRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
+        mStringRequest.setTag(TAG + "confirmin");
+        PdaApplication.mRequestQueue.add(mStringRequest);
+    }
+    /**
+     * 确认入库
+     *
+     * @param forceNewBio
+     */
+    private void confirmStorageIn(boolean forceNewBio) {
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_RECEIVING_NEWBAOCODEIO)
+                .method(Request.Method.POST)
+                .tag(TAG + "newbarcodeio")
+                .flag(0)
+                .addParam("pi_id", mPiid)
+                .addParam("forceNewBio", Boolean.toString(forceNewBio))
+                .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);
+                    JSONObject dataObject = resultObject.getJSONObject("data");
+                    if (dataObject != null && FastjsonUtil.getBoolean(dataObject, "qtyCheck")) {
+                        new AlertDialog.Builder(mActivity)
+                                .setTitle("提示")
+                                .setMessage("存在采集数量与单据明细数量不一致,是否继续确认入库?")
+                                .setNegativeButton(R.string.cancel, null)
+                                .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        if (dialog != null) {
+                                            dialog.dismiss();
+                                        }
+                                        confirmStorageIn(true);
+                                    }
+                                }).show();
+                    } else {
+                        CommonUtil.toastNoRepeat(mActivity, "入库成功");
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    private void closeMenuPopupWindow() {
+        if (mMenuPopupWindow != null) {
+            mMenuPopupWindow.dismiss();
+            mMenuPopupWindow = null;
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (hidden) {
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+        } else {
+            ((FunctionActivity) getActivity()).setTitle("入库采集");
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+            mMoreButton.setOnClickListener(this);
+        }
+    }
+
+    @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);
+    }
+
+    private class MyTextWatcher implements TextWatcher {
+        private TextView view;
+
+        public MyTextWatcher(TextView view) {
+            this.view = view;
+        }
+
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+        }
+
+        @Override
+        public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+            String text = s.toString().trim();
+            switch (view.getId()) {
+                case R.id.jlt_storage_in_barcode_model_et:
+                    mBarcodeParseBean.setPN(text);
+                    break;
+                case R.id.jlt_storage_in_barcode_quantity_et:
+                    try {
+                        double qty = Double.parseDouble(text);
+                        mBarcodeParseBean.setQTY(qty);
+                        String mpq = mMpqEditText.getText().toString().trim();
+                        try {
+                            if (!TextUtils.isEmpty(mpq)) {
+                                double mpqNum = Double.parseDouble(mpq);
+                                if (mpqNum <= 0) {
+                                    mPanEditText.setText("0");
+                                } else {
+                                    double pan = qty / mpqNum;
+                                    mPanEditText.setText(CommonUtil.doubleFormat(Math.ceil(pan)));
+                                }
+                            } else {
+                                mPanEditText.setText("0");
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            mPanEditText.setText("0");
+                        }
+                    } catch (Exception e) {
+                        mBarcodeParseBean.setQTY(0);
+                        mBarcodeParseBean.setPAN(0);
+                    }
+                    break;
+                case R.id.jlt_storage_in_barcode_mpq_et:
+                    mBarcodeParseBean.setMPQ(text);
+                    String qty = mQuantityEditText.getText().toString().trim();
+                    try {
+                        if (!TextUtils.isEmpty(qty)) {
+                            double qtyNum = Double.parseDouble(qty);
+                            double mpqNum = Double.parseDouble(text);
+                            if (mpqNum <= 0) {
+                                mPanEditText.setText("0");
+                            } else {
+                                double pan = qtyNum / mpqNum;
+                                mPanEditText.setText(CommonUtil.doubleFormat(Math.ceil(pan)));
+                            }
+                        } else {
+                            mPanEditText.setText("0");
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        mPanEditText.setText("0");
+                        mBarcodeParseBean.setPAN(0);
+                    }
+                    break;
+                case R.id.jlt_storage_in_barcode_date_et:
+                    mBarcodeParseBean.setDATECODE(text);
+                    break;
+                case R.id.jlt_storage_in_barcode_lot_et:
+                    mBarcodeParseBean.setLOTNO(text);
+                    break;
+                case R.id.jlt_storage_in_barcode_reel_et:
+                    try {
+                        int pan = Integer.parseInt(text);
+                        mBarcodeParseBean.setPAN(pan);
+                    } catch (Exception e) {
+                        mBarcodeParseBean.setPAN(0);
+                        e.printStackTrace();
+                    }
+                    break;
+                case R.id.jlt_storage_in_barcode_po_et:
+                    mBarcodeParseBean.setORDERCODE(text);
+                    break;
+                case R.id.jlt_storage_in_barcode_brand_et:
+                    mBarcodeParseBean.setBRAND(text);
+                    break;
+                case R.id.jlt_storage_in_barcode_enclosure_et:
+                    mBarcodeParseBean.setPR_PKG(text);
+                    break;
+            }
+        }
+    }
+//    private void getNeedList() {
+//        progressDialog.show();
+//
+//        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+//                .url(GloableParams.ADDRESS_JLT_RECEIVING_GETNEEDLIST)
+//                .method(Request.Method.GET)
+//                .tag(TAG + "getneedlist")
+//                .addParam("pi_ids", mPiid)
+//                .build(), new HttpCallback() {
+//            @Override
+//            public void onSuccess(int flag, Object o) throws Exception {
+//                try {
+//                    progressDialog.dismiss();
+//                    String result = o.toString();
+//
+//                    JSONObject resultObject = JSON.parseObject(result);
+//                    JSONArray dataArray = resultObject.getJSONArray("data");
+//                    if (dataArray == null || dataArray.size() == 0) {
+//                        CommonUtil.toastNoRepeat(mActivity, "数据为空");
+//                        return;
+//                    }
+//
+//                    List<SecondaryListAdapter.SecondaryListBean<String, JLTStorageModelBean>> mSecondaryListBeen = new ArrayList<>();
+//                    for (int i = 0; i < dataArray.size(); i++) {
+//                        JSONObject dataObject = dataArray.getJSONObject(i);
+//                        if (dataObject != null) {
+//                            String inoutno = FastjsonUtil.getText(dataObject, "PB_INOUTNO");
+//
+//                            JSONArray modelArray = dataObject.getJSONArray("list");
+//                            List<JLTStorageModelBean> jltStorageModelBeans = new ArrayList<>();
+//                            if (modelArray != null && modelArray.size() > 0) {
+//                                for (int j = 0; j < modelArray.size(); j++) {
+//                                    JSONObject modelObject = modelArray.getJSONObject(j);
+//                                    if (modelObject != null) {
+//                                        JLTStorageModelBean jltStorageModelBean = new JLTStorageModelBean();
+//                                        jltStorageModelBean.setModel(FastjsonUtil.getText(modelObject, "ORISPECCODE"));
+//                                        jltStorageModelBean.setProdcode(FastjsonUtil.getText(modelObject,"PD_PRODCODE"));
+//                                        jltStorageModelBean.setQuantity(FastjsonUtil.getText(modelObject, "RESTQTY"));
+//                                        jltStorageModelBean.setDoneQty(FastjsonUtil.getText(modelObject, "PBQTY"));
+//                                        jltStorageModelBean.setPr_brand(FastjsonUtil.getText(modelObject, "PR_BRAND"));
+//                                        jltStorageModelBean.setPrcode(FastjsonUtil.getText(modelObject, "PRCODE"));
+//                                        jltStorageModelBeans.add(jltStorageModelBean);
+//                                    }
+//                                }
+//                            }
+//                            SecondaryListAdapter.SecondaryListBean<String, JLTStorageModelBean> secondaryListBean
+//                                    = new SecondaryListAdapter.SecondaryListBean<>(inoutno, jltStorageModelBeans);
+//
+//                            mSecondaryListBeen.add(secondaryListBean);
+//                        }
+//                    }
+//                    mStorageInTodoAdapter.setDatas(mSecondaryListBeen);
+//                    mRecyclerView.setAdapter(mStorageInTodoAdapter);
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//
+//            @Override
+//            public void onFail(int flag, String failStr) throws Exception {
+//                progressDialog.dismiss();
+//
+//                CommonUtil.toastNoRepeat(mActivity, failStr);
+//            }
+//        });
+//    }
+    public interface OnFinishListener {
+        void onFinish();
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+
+    }
+}

+ 256 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/JLTStorageInBoxScanFragment.java

@@ -0,0 +1,256 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.support.v4.app.FragmentManager;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.TextView;
+
+import com.android.volley.Request;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.activity.FunctionActivity;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.listener.MyEditorActionListener;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.FragmentUtils;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+
+
+/**
+ * Created by cjh on 2022/7/12
+ * Desc: 入库扫描外箱
+ */
+public class JLTStorageInBoxScanFragment extends BaseFragment implements View.OnClickListener, JLTStorageInBarcodeFragment.OnFinishListener {
+    private TextView mTypeTextView, mNumTextView;
+    private ClearableEditText mBoxEditText;
+    private Button mMoreButton;
+    private PopupWindow mMenuPopupWindow;
+    private View mMenuView;
+    private String pi_inoutno, pi_id, pi_class;
+    private boolean isMultiple;
+    private OnFinishListener mOnFinishListener;
+
+    public void setOnFinishListener(OnFinishListener onFinishListener) {
+        mOnFinishListener = onFinishListener;
+    }
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_jlt_storage_in_box_scan;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("入库扫描外箱");
+
+        ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+
+        mMoreButton = (Button) getActivity().findViewById(R.id.btn_actionbar_more);
+        mTypeTextView = root.findViewById(R.id.jlt_storage_in_box_scan_type_tv);
+        mNumTextView = root.findViewById(R.id.jlt_storage_in_box_scan_num_tv);
+        mBoxEditText = root.findViewById(R.id.jlt_storage_in_box_scan_box_et);
+        mBoxEditText.requestFocus();
+    }
+
+    @Override
+    protected void initEvents() {
+        mMoreButton.setOnClickListener(this);
+
+        CommonUtil.setEditorActionListener(mBoxEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                checkOutBox();
+            }
+        });
+    }
+
+    @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");
+            isMultiple = bundle.getBoolean("isMultiple");
+        }
+
+        mTypeTextView.setText(pi_class);
+        mNumTextView.setText(pi_inoutno);
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.btn_actionbar_more:
+                showMoreMenu();
+                break;
+        }
+    }
+
+    /**
+     * 校验箱号
+     */
+    private void checkOutBox() {
+        String boxNum = mBoxEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(boxNum)) {
+            CommonUtil.toastNoRepeat(mActivity, "请采集箱号");
+            return;
+        }
+        progressDialog.show();
+
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_JLT_RECEIVING_CHECKOUTBOX)
+                .method(Request.Method.GET)
+                .tag(TAG + "checkoutbox")
+                .flag(0)
+                .addParam("outBoxCode", boxNum)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                mBoxEditText.setText("");
+                JLTStorageInBarcodeFragment jltStorageInBarcodeFragment = new JLTStorageInBarcodeFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("boxNum", boxNum);
+                bundle.putString("pi_id", pi_id);
+                bundle.putString("pi_class", pi_class);
+                jltStorageInBarcodeFragment.setArguments(bundle);
+                jltStorageInBarcodeFragment.setOnFinishListener(JLTStorageInBoxScanFragment.this);
+                FragmentUtils.switchFragment(JLTStorageInBoxScanFragment.this, jltStorageInBarcodeFragment);
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                mBoxEditText.setText("");
+                mBoxEditText.requestFocus();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    /**
+     * 展示扩展菜单
+     */
+    private void showMoreMenu() {
+        if (mMenuView == null) {
+            mMenuView = View.inflate(getActivity(), R.layout.pop_jlt_storage_in_box_menu, null);
+        }
+        Button todoListBtn = (Button) mMenuView.findViewById(R.id.pop_jlt_storage_in_box_menu_1);
+        Button doneListInBtn = (Button) mMenuView.findViewById(R.id.pop_jlt_storage_in_box_menu_2);
+        Button revokeCollectBtn = (Button) mMenuView.findViewById(R.id.pop_jlt_storage_in_box_menu_3);
+
+        todoListBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+
+                JLTStorageInTodoListFragment jltStorageInTodoListFragment = new JLTStorageInTodoListFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", pi_id);
+                bundle.putString("pi_class", pi_class);
+                jltStorageInTodoListFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBoxScanFragment.this, jltStorageInTodoListFragment);
+            }
+        });
+
+        doneListInBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+
+                JLTStorageInDoneListFragment jltStorageInDoneListFragment = new JLTStorageInDoneListFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", pi_id);
+                bundle.putString("pi_class", pi_class);
+                jltStorageInDoneListFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBoxScanFragment.this, jltStorageInDoneListFragment);
+            }
+        });
+
+        revokeCollectBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                JLTRevokeBoxFragment jltRevokeBoxFragment = new JLTRevokeBoxFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", pi_id);
+                jltRevokeBoxFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBoxScanFragment.this, jltRevokeBoxFragment);
+            }
+        });
+
+        if (mMenuPopupWindow == null) {
+            mMenuPopupWindow = new PopupWindow(mMenuView, 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();
+            mMenuPopupWindow = null;
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (hidden) {
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+        } else {
+            ((FunctionActivity) getActivity()).setTitle("入库扫描外箱");
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+            mMoreButton = (Button) getActivity().findViewById(R.id.btn_actionbar_more);
+            mMoreButton.setOnClickListener(this);
+        }
+    }
+
+    @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);
+    }
+
+    @Override
+    public void onFinish() {
+        FragmentManager supportFragmentManager = getActivity().getSupportFragmentManager();
+        if (supportFragmentManager != null) {
+            supportFragmentManager.popBackStack();
+            if (mOnFinishListener != null) {
+                mOnFinishListener.onFinish();
+            }
+        }
+    }
+
+    public interface OnFinishListener {
+        void onFinish();
+    }
+}

+ 298 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/NewBePutInStorageOrderDetailFragment.java

@@ -0,0 +1,298 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.content.ContextCompat;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.CheckBox;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.CellInfo;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
+import com.bin.david.form.data.style.FontStyle;
+import com.bin.david.form.data.table.TableData;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.bean.CollectListBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.FragmentUtils;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by cjh-sail on 2023-02-23
+ */
+public class NewBePutInStorageOrderDetailFragment extends BaseFragment{
+
+    private TextView tv_pi_inoutno;
+    private SmartTable mSmartTable;
+    private String mPiInoutno;
+    private Column<String> mTypeColumn, mcontentColumn, mCnColumn, mOrispeccodeColumn, mCodeColumn, mDetailColumn;
+    private TableData<CollectListBean> mTableData;
+    private List<CollectListBean> mFilterStorageInBeans;
+    private ClearableEditText jlt_storage_in_barcode_barcode_et;
+    private CheckBox ck_cancel;
+    private TextView tv_productdetails;
+    private TextView tv_hint;
+    private TextView tv_qty;
+    private RadioGroup radiogroup1;
+    private RadioButton radiobutton1;
+    private RadioButton radiobutton2;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.newbeputinstorageorderdetail_fragment;
+    }
+
+    @Override
+    protected void initViews() {
+        setTitle("入库详情");
+        tv_pi_inoutno = root.findViewById(R.id.tv_pi_inoutno);
+        mSmartTable = root.findViewById(R.id.jlt_storage_in_filter_list_st);
+        jlt_storage_in_barcode_barcode_et = root.findViewById(R.id.jlt_storage_in_barcode_barcode_et);
+        ck_cancel = root.findViewById(R.id.ck_cancel);
+        tv_productdetails = root.findViewById(R.id.tv_productdetails);
+        tv_hint = root.findViewById(R.id.tv_hint);
+        tv_qty = root.findViewById(R.id.tv_qty);
+
+        radiogroup1 = root.findViewById(R.id.radiogroup1);
+        radiobutton1 = root.findViewById(R.id.radiobutton1);
+        radiobutton2 = root.findViewById(R.id.radiobutton2);
+        radiobutton1.setChecked(true);
+
+        mTypeColumn = new Column<String>("类型", "PIM_TYPE");
+        mcontentColumn = new Column<String>("内容", "CONTENT");
+        mCnColumn = new Column<String>("数量", "CN");
+        mOrispeccodeColumn = new Column<String>("型号", "PR_ORISPECCODE");
+        mCodeColumn = new Column<String>("料号", "PR_CODE");
+        mDetailColumn = new Column<String>("名称", "PR_DETAIL");
+        mDetailColumn.setFixed(true);
+
+
+        mFilterStorageInBeans = new ArrayList<>();
+
+
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
+                .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                    @Override
+                    public int getBackGroundColor(CellInfo cellInfo) {
+                        if (cellInfo.row % 2 == 0) {
+                            return ContextCompat.getColor(mActivity, R.color.blue_50);
+                        }
+                        return TableConfig.INVALID_COLOR;
+                    }
+                });
+
+
+
+
+
+        jlt_storage_in_barcode_barcode_et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if (actionId == EditorInfo.IME_ACTION_DONE
+                        || actionId == EditorInfo.IME_ACTION_SEND
+                        || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
+                    String input = jlt_storage_in_barcode_barcode_et.getText().toString().trim();
+                    getmakeInWarhouse(input);
+                    return true;
+                }
+                return false;
+            }
+        });
+
+    }
+
+    @Override
+    protected void initEvents() {
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            mPiInoutno = bundle.getString("pi_inoutno");
+        }
+        tv_pi_inoutno.setText(mPiInoutno);
+
+        tv_productdetails.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ProductDetailsFragment productDetailsFragment=new ProductDetailsFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_inoutno", mPiInoutno);
+                productDetailsFragment.setArguments(bundle);
+//        jltStorageInBarcodeFragment.setOnFinishListener(this);
+                FragmentUtils.switchFragment(NewBePutInStorageOrderDetailFragment.this, productDetailsFragment);
+            }
+        });
+
+
+    }
+
+    @Override
+    protected void initDatas() {
+        getCollectList();
+    }
+    public void getCollectList(){
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKECOLLECTBOXLIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("inoutno",mPiInoutno)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mFilterStorageInBeans.clear();
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    List<CollectListBean> list=new ArrayList<>();
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+
+                                CollectListBean collectListBean = new CollectListBean();
+                                collectListBean.setPIM_TYPE(FastjsonUtil.getText(dataObject, "PIM_TYPE"));
+                                collectListBean.setCONTENT(FastjsonUtil.getText(dataObject, "CONTENT"));
+                                collectListBean.setCN(FastjsonUtil.getText(dataObject, "CN"));
+                                collectListBean.setPR_ORISPECCODE(FastjsonUtil.getText(dataObject, "PR_ORISPECCODE"));
+                                collectListBean.setPR_CODE(FastjsonUtil.getText(dataObject, "PR_CODE"));
+                                collectListBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+                                list.add(collectListBean);
+                            }
+                        }
+                    }
+                    mFilterStorageInBeans = list;//PI_INOUTNO
+                    setFilterTableData(mFilterStorageInBeans);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                setFilterTableData(mFilterStorageInBeans);
+            }
+        });
+    }
+
+
+    public void getmakeInWarhouse(String input){
+        String text_radiobutton = null;
+        if (radiobutton1.isChecked()==true){
+            text_radiobutton="BOX";
+        }else if (radiobutton2.isChecked()==true){
+            text_radiobutton="SN";
+        }else {
+            text_radiobutton="";
+        }
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKEINWARHOUSE)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("inoutno",mPiInoutno)
+                .addParam("cancel",ck_cancel.isChecked()+"")
+                .addParam("code",input)
+                .addParam("type",text_radiobutton)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+
+                String result = o.toString();
+                Log.e("result",result);
+                JSONObject resultObject = JSON.parseObject(result);
+                String data = FastjsonUtil.getText(resultObject, "data");
+                tv_hint.setTextColor(getResources().getColor(R.color.green));
+                tv_hint.setText(data);
+                getCollectList();
+                jlt_storage_in_barcode_barcode_et.setText("");
+                jlt_storage_in_barcode_barcode_et.requestFocus();
+//                if (dataObject != null) {
+//                    String lotno = FastjsonUtil.getText(dataObject, "LOTNO");
+//                }
+
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                tv_hint.setTextColor(getResources().getColor(R.color.red));
+                tv_hint.setText(failStr);
+                jlt_storage_in_barcode_barcode_et.setText("");
+                jlt_storage_in_barcode_barcode_et.requestFocus();
+            }
+        });
+    }
+
+    private void setFilterTableData(List<CollectListBean> filterTableData) {
+        mTableData = new TableData<CollectListBean>("入库单列表", filterTableData,
+                mTypeColumn, mcontentColumn, mCnColumn, mOrispeccodeColumn, mCodeColumn, mDetailColumn);
+        tv_qty.setText("行数:"+filterTableData.size());
+        mSmartTable.setTableData(mTableData);
+//        mSmartTable.requestLayout();
+        new Handler().postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    mSmartTable.postInvalidate();
+                }
+            }, 100);
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (!hidden) {
+            setTitle("入库详情");
+        }
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+}

+ 557 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/NewJltStorageInFilterListFragment.java

@@ -0,0 +1,557 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.content.ContextCompat;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.CellInfo;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.column.ColumnInfo;
+import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
+import com.bin.david.form.data.format.draw.ImageResDrawFormat;
+import com.bin.david.form.data.format.title.TitleImageDrawFormat;
+import com.bin.david.form.data.style.FontStyle;
+import com.bin.david.form.data.table.TableData;
+import com.bin.david.form.listener.OnColumnClickListener;
+import com.bin.david.form.listener.OnColumnItemClickListener;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.activity.FunctionActivity;
+import com.uas.pda_smart_com_lg.bean.JLTStorageInBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.util.CameraUtil;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.FragmentUtils;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+import com.uuzuche.lib_zxing.activity.CaptureActivity;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by cjh on 2023/02/23
+ * Desc: 入库单列表页面
+ */
+
+public class NewJltStorageInFilterListFragment extends BaseFragment implements OnColumnItemClickListener<String>, JLTStorageInBarcodeFragment.OnFinishListener, JLTStorageInBoxScanFragment.OnFinishListener {
+    private ClearableEditText mSearchCet;
+    private TextView mSearchTv, mMultipleTv;
+    private RefreshLayout mRefreshLayout;
+    private List<JLTStorageInBean> mFilterStorageInBeans;
+    private boolean mIgnoreChange = false;
+    private String mSupplier = "", mWhcode = "", mStartDate = "", mEndDate = "";
+    private SmartTable mSmartTable;
+    private Column<Boolean> mCheckColumn;
+    private Column<Long> mPosColumn;
+    private Column<String> mNumColumn, mClassColumn, mStateColumn, mWhcodeColumn, mWhcodeDesColumn, mSupplierColumn;
+    private TableData<JLTStorageInBean> mTableData;
+    private boolean mIsAllSelect = false;
+    private static final int SCAN_BARCODE_CODE = 111;
+    private ImageView mScanImageView;
+    private int mFocusId;
+    private int mPageIndex = 1, mPageSize = 20;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_jlt_storage_in_filter_list;
+    }
+
+    @Override
+    protected void initViews() {
+        setTitle("入库列表");
+//        ((FunctionActivity) mActivity).setScanIvVisible(true);
+        mRefreshLayout = root.findViewById(R.id.pda_wms_in_filter_list_srl);
+        mRefreshLayout.setEnableAutoLoadMore(false);
+        mSearchCet = root.findViewById(R.id.jlt_storage_in_filter_list_search_cet);
+        mSearchTv = root.findViewById(R.id.jlt_storage_in_filter_list_search_tv);
+        mMultipleTv = root.findViewById(R.id.jlt_storage_in_filter_list_multiple_tv);
+        mScanImageView = (ImageView) mActivity.findViewById(R.id.btn_actionbar_scan_iv);
+        mSearchCet.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mSearchCet.requestFocus();
+            }
+        }, 100);
+
+        mFilterStorageInBeans = new ArrayList<>();
+
+        mSmartTable = root.findViewById(R.id.jlt_storage_in_filter_list_st);
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
+                .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                    @Override
+                    public int getBackGroundColor(CellInfo cellInfo) {
+                        if (cellInfo.row % 2 == 0) {
+                            return ContextCompat.getColor(mActivity, R.color.blue_50);
+                        }
+                        return TableConfig.INVALID_COLOR;
+                    }
+                });
+
+        mCheckColumn = new Column<Boolean>("全选", "isSelect",
+                new ImageResDrawFormat<Boolean>(CommonUtil.dip2px(mActivity, 20), CommonUtil.dip2px(mActivity, 20)) {
+                    @Override
+                    protected Context getContext() {
+                        return mActivity;
+                    }
+
+                    @Override
+                    protected int getResourceID(Boolean aBoolean, String value, int position) {
+                        if (aBoolean) {
+                            return R.drawable.ic_check;
+                        } else {
+                            return R.drawable.ic_uncheck;
+                        }
+                    }
+                });
+        mCheckColumn.setFixed(true);
+        mPosColumn = new Column<Long>("序号", "POS");
+        mPosColumn.setFixed(true);
+        mNumColumn = new Column<String>("单号", "PI_INOUTNO");
+        mNumColumn.setFixed(true);
+        mClassColumn = new Column<String>("类型", "PI_CLASS");
+        mSupplierColumn = new Column<String>("供应商", "PI_TITLE");
+        mWhcodeColumn = new Column<String>("仓库编号", "PI_WHCODE");
+        mWhcodeDesColumn = new Column<String>("仓库名称", "PI_WHNAME");
+        mStateColumn = new Column<String>("状态", "PI_STATUS");
+
+    }
+
+    @Override
+    protected void initEvents() {
+        mMultipleTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                multipleCollect();
+            }
+        });
+
+        mSearchCet.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                String filter = s.toString().trim();
+                if (TextUtils.isEmpty(filter)) {
+                } else {
+                    List<JLTStorageInBean> filteredList = new ArrayList<>();
+                    for (JLTStorageInBean storageInBean : mFilterStorageInBeans) {
+                        if (storageInBean.getPI_INOUTNO().contains(filter)) {
+                            filteredList.add(storageInBean);
+                        }
+                    }
+                    mFilterStorageInBeans = filteredList;
+                }
+                setFilterTableData(mFilterStorageInBeans);
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                getInDataList();
+            }
+        });
+
+        mCheckColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<Boolean>() {
+            @Override
+            public void onClick(Column<Boolean> column, String value, Boolean aBoolean, int position) {
+                itemCheck(position);
+            }
+        });
+
+        mSmartTable.setOnColumnClickListener(new OnColumnClickListener() {
+            @Override
+            public void onClick(ColumnInfo columnInfo) {
+                if (columnInfo.column == mCheckColumn) {
+                    allCheck();
+                }
+            }
+        });
+
+        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+            @Override
+            public void onRefresh(RefreshLayout refreshLayout) {
+                mPageIndex = 1;
+                getInDataList();
+            }
+        });
+
+        mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+            @Override
+            public void onLoadMore(RefreshLayout refreshLayout) {
+                mPageIndex++;
+                getInDataList();
+            }
+        });
+
+        mScanImageView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (CameraUtil.hasCamera()) {
+                    if (root.findFocus() != null) {
+                        mFocusId = root.findFocus().getId();
+                        Intent intent = new Intent();
+                        intent.setClass(mActivity, CaptureActivity.class);
+                        startActivityForResult(intent, SCAN_BARCODE_CODE);
+                    }
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
+                }
+            }
+        });
+
+
+
+        mNumColumn.setOnColumnItemClickListener(this);
+        mClassColumn.setOnColumnItemClickListener(this);
+        mSupplierColumn.setOnColumnItemClickListener(this);
+        mWhcodeColumn.setOnColumnItemClickListener(this);
+        mWhcodeDesColumn.setOnColumnItemClickListener(this);
+        mStateColumn.setOnColumnItemClickListener(this);
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            mSupplier = bundle.getString("supplier", "");
+            mWhcode = bundle.getString("whcode", "");
+            mStartDate = bundle.getString("startDate", "");
+            mEndDate = bundle.getString("endDate", "");
+        }
+
+//        progressDialog.show();
+        getInDataList();
+    }
+
+    private void allCheck() {
+        mIsAllSelect = !mIsAllSelect;
+
+        setAllSelect(mIsAllSelect);
+        for (int i = 0; i < mFilterStorageInBeans.size(); i++) {
+            mFilterStorageInBeans.get(i).setSelect(mIsAllSelect);
+        }
+        List<Boolean> datas = mCheckColumn.getDatas();
+        for (int i = 0; i < datas.size(); i++) {
+            datas.set(i, mIsAllSelect);
+        }
+
+        mSmartTable.refreshDrawableState();
+        mSmartTable.invalidate();
+    }
+
+    private void itemCheck(int position) {
+        int reaPos = mFilterStorageInBeans.get(position).getPOS();
+        boolean select = !mFilterStorageInBeans.get(reaPos).isSelect();
+        mFilterStorageInBeans.get(reaPos).setSelect(select);
+        mCheckColumn.getDatas().set(position, select);
+
+        if (!select) {
+            mIsAllSelect = false;
+            setAllSelect(false);
+        } else {
+            filterAllSelect();
+        }
+
+        mSmartTable.refreshDrawableState();
+        mSmartTable.invalidate();
+    }
+
+    private void filterAllSelect() {
+        boolean isAllSelect = true;
+        if (mFilterStorageInBeans.size() == 0) {
+            isAllSelect = false;
+        }
+        for (int i = 0; i < mFilterStorageInBeans.size(); i++) {
+            if (!mFilterStorageInBeans.get(i).isSelect()) {
+                isAllSelect = false;
+                break;
+            }
+        }
+        setAllSelect(isAllSelect);
+    }
+
+    private void getInDataList() {
+//        progressDialog.show();
+        String trim = mSearchCet.getText().toString().trim();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_JLT_RECEIVING_GETINDATALIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("pi_inoutno",trim)
+                .addParam("page", mPageIndex + "")
+                .addParam("pageSize", mPageSize + "")
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+
+                try {
+                    if (mPageIndex == 1) {
+                        mFilterStorageInBeans.clear();
+                    }
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    List<JLTStorageInBean> list=new ArrayList<>();
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+
+                                JLTStorageInBean jltStorageInBean = new JLTStorageInBean();
+                                jltStorageInBean.setPOS(mPageIndex == 1 ? (i + 1) : (mTableData.getT().size() + i + 1));
+//                                jltStorageInBean.setPOS(i);
+                                jltStorageInBean.setPI_INOUTNO(FastjsonUtil.getText(dataObject, "PI_INOUTNO"));
+                                jltStorageInBean.setPI_ID(FastjsonUtil.getLong(dataObject, "PI_ID"));
+                                jltStorageInBean.setPI_CLASS(FastjsonUtil.getText(dataObject, "PI_CLASS"));
+                                jltStorageInBean.setPI_TITLE(FastjsonUtil.getText(dataObject, "PI_TITLE"));
+                                jltStorageInBean.setPI_WHCODE(FastjsonUtil.getText(dataObject, "PI_WHCODE"));
+                                jltStorageInBean.setPI_WHNAME(FastjsonUtil.getText(dataObject, "PI_WHNAME"));
+                                jltStorageInBean.setPI_STATUS(FastjsonUtil.getText(dataObject, "PI_STATUS"));
+                                jltStorageInBean.setSpread(false);
+                                jltStorageInBean.setSelect(false);
+                                list.add(jltStorageInBean);
+                            }
+                        }
+                    }
+                    if (mPageIndex == 1) {
+                        mFilterStorageInBeans = list;//PI_INOUTNO
+                        setFilterTableData(mFilterStorageInBeans);
+                    }else if (list.size() > 0) {
+//                        mStorageInBeans.clear();
+//                        mFilterStorageInBeans.clear();
+                        mFilterStorageInBeans.addAll(list);
+                        mSmartTable.addData(list, true);
+                        new Handler().postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                mSmartTable.postInvalidate();
+                            }
+                        }, 100);
+//                        filterAllSelect();
+                    } else {
+                        mPageIndex--;
+                    }
+                    progressDialog.dismiss();
+                    mRefreshLayout.finishRefresh(0);
+                    mRefreshLayout.finishLoadMore(0);
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                    mRefreshLayout.finishRefresh(0);
+                    mRefreshLayout.finishLoadMore(0);
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                mRefreshLayout.finishRefresh(0);
+                mRefreshLayout.finishLoadMore(0);
+                if (mPageIndex > 1) {
+                    mPageIndex--;
+                } else {
+                    setFilterTableData(new ArrayList<>());
+                }
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+
+//                mFilterStorageInBeans = mStorageInBeans;
+                setFilterTableData(mFilterStorageInBeans);
+            }
+        });
+    }
+
+    private void setFilterTableData(List<JLTStorageInBean> filterTableData) {
+        mTableData = new TableData<JLTStorageInBean>("入库单列表", filterTableData,
+                mNumColumn, mClassColumn, mSupplierColumn, mWhcodeColumn, mWhcodeDesColumn, mStateColumn);
+        mSmartTable.setTableData(mTableData);
+//        mSmartTable.requestLayout();
+        mSmartTable.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mSmartTable.postInvalidate();
+            }
+        }, 100);
+
+        filterAllSelect();
+    }
+
+    private void setAllSelect(boolean isAllSelect) {
+        mIsAllSelect = isAllSelect;
+        mTableData.setTitleDrawFormat(new TitleImageDrawFormat(CommonUtil.dip2px(mActivity, 20),
+                CommonUtil.dip2px(mActivity, 20), 10) {
+            @Override
+            protected Context getContext() {
+                return mActivity;
+            }
+
+            @Override
+            protected int getResourceID(Column column) {
+                if (column == mCheckColumn) {
+                    if (isAllSelect) {
+                        return R.drawable.ic_check;
+                    } else {
+                        return R.drawable.ic_uncheck;
+                    }
+                } else {
+                    return 0;
+                }
+            }
+        });
+    }
+
+    private void multipleCollect() {
+        StringBuffer pi_inoutno = new StringBuffer("");
+        StringBuffer pi_id = new StringBuffer("");
+
+        String pi_class = "", pi_title = "", pi_whcode = "";
+        for (int i = 0; i < mFilterStorageInBeans.size(); i++) {
+            JLTStorageInBean jltStorageInBean = mFilterStorageInBeans.get(i);
+            if (jltStorageInBean.isSelect()) {
+                if (TextUtils.isEmpty(pi_id)) {
+                    pi_class = jltStorageInBean.getPI_CLASS();
+                    pi_title = jltStorageInBean.getPI_TITLE();
+                    pi_whcode = jltStorageInBean.getPI_WHCODE();
+                } else {
+                    if (pi_class == null || !pi_class.equals(jltStorageInBean.getPI_CLASS())) {
+                        CommonUtil.toastNoRepeat(mActivity, "存在不同的单据类型,不允许合并入库");
+                        return;
+                    }
+                    if (pi_title == null || !pi_title.equals(jltStorageInBean.getPI_TITLE())) {
+                        CommonUtil.toastNoRepeat(mActivity, "存在不同的供应商,不允许合并入库");
+                        return;
+                    }
+                    if (pi_whcode == null || !pi_whcode.equals(jltStorageInBean.getPI_WHCODE())) {
+                        CommonUtil.toastNoRepeat(mActivity, "存在不同的入库仓库,不允许合并入库");
+                        return;
+                    }
+                }
+                pi_inoutno.append(jltStorageInBean.getPI_INOUTNO() + ",");
+                pi_id.append(jltStorageInBean.getPI_ID() + ",");
+            }
+        }
+        if (TextUtils.isEmpty(pi_id)) {
+            CommonUtil.toastNoRepeat(mActivity, "请选择您想入库的单据");
+            return;
+        }
+        JLTStorageInBoxScanFragment jltStorageInBoxScanFragment = new JLTStorageInBoxScanFragment();
+
+        Bundle bundle = new Bundle();
+        if (pi_inoutno.length() >= 1) {
+            bundle.putString("pi_inoutno", pi_inoutno.substring(0, pi_inoutno.length() - 1));
+        }
+        if (pi_id.length() >= 1) {
+            bundle.putString("pi_id", pi_id.substring(0, pi_id.length() - 1));
+        }
+        bundle.putString("pi_class", pi_class);
+        bundle.putBoolean("isMultiple", true);
+        jltStorageInBoxScanFragment.setArguments(bundle);
+        jltStorageInBoxScanFragment.setOnFinishListener(this);
+
+        FragmentUtils.switchFragment(NewJltStorageInFilterListFragment.this, jltStorageInBoxScanFragment);
+    }
+
+    @Override
+    public void onClick(Column<String> column, String value, String s, int position) {
+        rowClickEvent(position);
+    }
+
+    private void rowClickEvent(final int i) {
+        String pi_inoutno = mFilterStorageInBeans.get(i).getPI_INOUTNO();
+        NewBePutInStorageOrderDetailFragment newOutboundDeliveryOrderDetailFragment = new NewBePutInStorageOrderDetailFragment();
+        Bundle bundle = new Bundle();
+        bundle.putString("pi_inoutno", pi_inoutno);
+        newOutboundDeliveryOrderDetailFragment.setArguments(bundle);
+//        jltStorageInBarcodeFragment.setOnFinishListener(this);
+        FragmentUtils.switchFragment(NewJltStorageInFilterListFragment.this, newOutboundDeliveryOrderDetailFragment);
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (!hidden) {
+            setTitle("入库列表");
+            if (!CommonUtil.isRepeatClick()) {
+                getInDataList();
+            }
+        }
+    }
+    @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);
+                mSearchCet.setText(result);
+                mSearchCet.setSelection(result.length());
+            }
+        }
+    }
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+    @Override
+    public void onFinish() {
+        FragmentManager supportFragmentManager = getActivity().getSupportFragmentManager();
+        if (supportFragmentManager != null) {
+            supportFragmentManager.popBackStack();
+        }
+    }
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        ((FunctionActivity) getActivity()).setScanIvVisible(false);
+    }
+}

+ 300 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/NewOutboundDeliveryorderDetailFragment.java

@@ -0,0 +1,300 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.content.ContextCompat;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.widget.CheckBox;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.CellInfo;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
+import com.bin.david.form.data.style.FontStyle;
+import com.bin.david.form.data.table.TableData;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.bean.CollectListBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.FragmentUtils;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by cjh-sail on 2023-02-23
+ * 成品出库
+ */
+public class NewOutboundDeliveryorderDetailFragment extends BaseFragment{
+
+    private TextView tv_pi_inoutno;
+    private SmartTable mSmartTable;
+    private String mPiInoutno;
+    private Column<String> mTypeColumn, mcontentColumn, mCnColumn, mOrispeccodeColumn, mCodeColumn, mDetailColumn;
+    private TableData<CollectListBean> mTableData;
+    private List<CollectListBean> mFilterStorageInBeans;
+    private ClearableEditText jlt_storage_in_barcode_barcode_et;
+    private CheckBox ck_cancel;
+    private TextView tv_productdetails;
+    private TextView tv_hint;
+    private RadioGroup radiogroup1;
+    private RadioButton radiobutton1;
+    private RadioButton radiobutton2;
+    private TextView tv_qty;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.newoutbounddeliveryorderdetail_fragment;
+    }
+
+    @Override
+    protected void initViews() {
+        setTitle("出库详情");
+        tv_pi_inoutno = root.findViewById(R.id.tv_pi_inoutno);
+        mSmartTable = root.findViewById(R.id.jlt_storage_in_filter_list_st);
+        jlt_storage_in_barcode_barcode_et = root.findViewById(R.id.jlt_storage_in_barcode_barcode_et);
+        ck_cancel = root.findViewById(R.id.ck_cancel);
+        tv_productdetails = root.findViewById(R.id.tv_productdetails);
+        tv_hint = root.findViewById(R.id.tv_hint);
+        radiogroup1 = root.findViewById(R.id.radiogroup1);
+        radiobutton1 = root.findViewById(R.id.radiobutton1);
+        radiobutton2 = root.findViewById(R.id.radiobutton2);
+        tv_qty = root.findViewById(R.id.tv_qty);
+        radiobutton1.setChecked(true);
+
+
+        mTypeColumn = new Column<String>("类型", "PIM_TYPE");
+        mcontentColumn = new Column<String>("内容", "CONTENT");
+        mCnColumn = new Column<String>("数量", "CN");
+        mOrispeccodeColumn = new Column<String>("型号", "PR_ORISPECCODE");
+        mCodeColumn = new Column<String>("料号", "PR_CODE");
+        mDetailColumn = new Column<String>("名称", "PR_DETAIL");
+        mDetailColumn.setFixed(true);
+
+
+        mFilterStorageInBeans = new ArrayList<>();
+
+
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
+                .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                    @Override
+                    public int getBackGroundColor(CellInfo cellInfo) {
+                        if (cellInfo.row % 2 == 0) {
+                            return ContextCompat.getColor(mActivity, R.color.blue_50);
+                        }
+                        return TableConfig.INVALID_COLOR;
+                    }
+                });
+
+
+
+
+
+        jlt_storage_in_barcode_barcode_et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if (actionId == EditorInfo.IME_ACTION_DONE
+                        || actionId == EditorInfo.IME_ACTION_SEND
+                        || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
+                    String input = jlt_storage_in_barcode_barcode_et.getText().toString().trim();
+                    getmakeInWarhouse(input);
+                    return true;
+                }
+                return false;
+            }
+        });
+
+    }
+
+    @Override
+    protected void initEvents() {
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            mPiInoutno = bundle.getString("pi_inoutno");
+        }
+        tv_pi_inoutno.setText(mPiInoutno);
+
+        tv_productdetails.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ProductDetailsFragment productDetailsFragment=new ProductDetailsFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_inoutno", mPiInoutno);
+                productDetailsFragment.setArguments(bundle);
+//        jltStorageInBarcodeFragment.setOnFinishListener(this);
+                FragmentUtils.switchFragment(NewOutboundDeliveryorderDetailFragment.this, productDetailsFragment);
+            }
+        });
+
+
+    }
+
+    @Override
+    protected void initDatas() {
+        getCollectList();
+    }
+    public void getCollectList(){
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKECOLLECTBOXLIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("inoutno",mPiInoutno)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mFilterStorageInBeans.clear();
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    List<CollectListBean> list=new ArrayList<>();
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+
+                                CollectListBean collectListBean = new CollectListBean();
+                                collectListBean.setPIM_TYPE(FastjsonUtil.getText(dataObject, "PIM_TYPE"));
+                                collectListBean.setCONTENT(FastjsonUtil.getText(dataObject, "CONTENT"));
+                                collectListBean.setCN(FastjsonUtil.getText(dataObject, "CN"));
+                                collectListBean.setPR_ORISPECCODE(FastjsonUtil.getText(dataObject, "PR_ORISPECCODE"));
+                                collectListBean.setPR_CODE(FastjsonUtil.getText(dataObject, "PR_CODE"));
+                                collectListBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+                                list.add(collectListBean);
+                            }
+                        }
+                    }
+                    mFilterStorageInBeans = list;//PI_INOUTNO
+                    setFilterTableData(mFilterStorageInBeans);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                setFilterTableData(mFilterStorageInBeans);
+            }
+        });
+    }
+
+
+    public void getmakeInWarhouse(String input){
+        String text_radiobutton = null;
+        if (radiobutton1.isChecked()==true){
+            text_radiobutton="BOX";
+        }else if (radiobutton2.isChecked()==true){
+            text_radiobutton="SN";
+        }else {
+            text_radiobutton="";
+        }
+
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKEOUTWARHOUSE)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("inoutno",mPiInoutno)
+                .addParam("cancel",ck_cancel.isChecked()+"")
+                .addParam("code",input)
+                .addParam("type",text_radiobutton)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+
+                String result = o.toString();
+                Log.e("result",result);
+                JSONObject resultObject = JSON.parseObject(result);
+                String data = FastjsonUtil.getText(resultObject, "data");
+                tv_hint.setTextColor(getResources().getColor(R.color.green));
+                tv_hint.setText(data);
+                getCollectList();
+                jlt_storage_in_barcode_barcode_et.setText("");
+                jlt_storage_in_barcode_barcode_et.requestFocus();
+//                if (dataObject != null) {
+//                    String lotno = FastjsonUtil.getText(dataObject, "LOTNO");
+//                }
+
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                tv_hint.setTextColor(getResources().getColor(R.color.red));
+                tv_hint.setText(failStr);
+                jlt_storage_in_barcode_barcode_et.setText("");
+                jlt_storage_in_barcode_barcode_et.requestFocus();
+            }
+        });
+    }
+
+    private void setFilterTableData(List<CollectListBean> filterTableData) {
+        mTableData = new TableData<CollectListBean>("入库单列表", filterTableData,
+                mTypeColumn, mcontentColumn, mCnColumn, mOrispeccodeColumn, mCodeColumn, mDetailColumn);
+        tv_qty.setText("行数:"+filterTableData.size());
+        mSmartTable.setTableData(mTableData);
+//        mSmartTable.requestLayout();
+        new Handler().postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    mSmartTable.postInvalidate();
+                }
+            }, 100);
+    }
+
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (!hidden) {
+            setTitle("出库详情");
+        }
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+}

+ 437 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/OutboundLis_Two_fragment.java

@@ -0,0 +1,437 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.app.Fragment;
+import android.support.v4.content.ContextCompat;
+import android.view.KeyEvent;
+import android.view.View;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+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.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.CellInfo;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
+import com.bin.david.form.data.style.FontStyle;
+import com.bin.david.form.data.table.TableData;
+import com.bin.david.form.listener.OnColumnItemClickListener;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.activity.FunctionActivity;
+import com.uas.pda_smart_com_lg.bean.OutboundListBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.util.CameraUtil;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.FragmentUtils;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+import com.uuzuche.lib_zxing.activity.CaptureActivity;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Created by cjh on 2022-10-15
+ */
+public class OutboundLis_Two_fragment extends BaseFragment implements OnColumnItemClickListener<String>, View.OnClickListener {
+
+    private ClearableEditText storage_recharge_collect_et;
+    private PopupWindow mMenuPopupWindow;
+    private Fragment mFragment;
+    private RefreshLayout mRefreshLayout;
+    private SmartTable mSmartTable;
+    private Column<String> va_classColumn,va_codeColumn,va_statusColumn,va_vendnameColumn,va_vendcodeColumn;
+    private TableData<OutboundListBean> mTableData;
+    private int mPageIndex = 1, mPageSize = 20;
+    private List<OutboundListBean> mFilterStorageInBeans;
+    private ImageView mScanImageView;
+    private Button mMenuButton;
+    private static final int SCAN_BARCODE_CODE = 111;
+    private int mFocusId;
+    private Button stockTaskBtn;
+    private Button stockAlreadyBtn;
+    private Button pop_material_out_resolution;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.storagerechargetwo_fragment;
+    }
+
+    @Override
+    protected void initViews() {
+        FunctionActivity.setTitle(getString(R.string.outboundlist));
+//        ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+        ((FunctionActivity) getActivity()).setListIconIvVisible(false);
+        storage_recharge_collect_et = mActivity.findViewById(R.id.storage_recharge_collect_et);
+        mRefreshLayout = mActivity.findViewById(R.id.pda_wms_in_filter_list_srl);
+        mSmartTable = mActivity.findViewById(R.id.jlt_storage_in_filter_list_st);
+        mScanImageView = (ImageView) mActivity.findViewById(R.id.storage_recharge_scan_iv);
+        mMenuButton = (Button) mActivity.findViewById(R.id.btn_actionbar_more);
+
+
+    }
+
+    @Override
+    protected void initEvents() {
+        storage_recharge_collect_et.requestFocus();
+        storage_recharge_collect_et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if (actionId == EditorInfo.IME_ACTION_DONE
+                        || actionId == EditorInfo.IME_ACTION_SEND
+                        || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
+                    String va_code = storage_recharge_collect_et.getText().toString().trim();
+                    getDatalistCodes(va_code);
+                    return true;
+                }
+                return false;
+            }
+        });
+        mFilterStorageInBeans = Collections.synchronizedList(new ArrayList<>());
+
+        initPopupWindow();
+        getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
+    }
+
+    @Override
+    protected void initDatas() {
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
+                .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                    @Override
+                    public int getBackGroundColor(CellInfo cellInfo) {
+                        if (cellInfo.row % 2 == 0) {
+                            return ContextCompat.getColor(mActivity, R.color.blue_50);
+                        }
+                        return TableConfig.INVALID_COLOR;
+                    }
+                });
+
+
+
+        va_classColumn = new Column<String>("单号", "PI_INOUTNO");
+        va_classColumn.setFixed(true);
+        va_codeColumn = new Column<String>("单据类型", "PI_CLASS");
+        va_statusColumn = new Column<String>("单据状态", "PI_INVOSTATUS");
+        va_vendnameColumn = new Column<String>("过账状态", "PI_STATUS");
+        va_vendcodeColumn = new Column<String>("仓库编号", "PI_WHCODE");
+
+
+        va_classColumn.setOnColumnItemClickListener(this);
+        va_codeColumn.setOnColumnItemClickListener(this);
+        va_statusColumn.setOnColumnItemClickListener(this);
+        va_vendnameColumn.setOnColumnItemClickListener(this);
+        va_vendcodeColumn.setOnColumnItemClickListener(this);
+        mScanImageView.setOnClickListener(this);
+        mMenuButton.setOnClickListener(this);
+
+        mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+            @Override
+            public void onRefresh(RefreshLayout refreshLayout) {
+                mPageIndex = 1;
+                getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
+            }
+        });
+
+        mRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+            @Override
+            public void onLoadMore(RefreshLayout refreshLayout) {
+                mPageIndex++;
+                getDatalistCodes(storage_recharge_collect_et.getText().toString().trim());
+            }
+        });
+
+//        ceshiData();
+    }
+    private void getDatalistCodes(String pi_inoutno){
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_OUTBOUNDLIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("pi_inoutno",pi_inoutno)
+                .addParam("page",mPageIndex+"")
+                .addParam("pageSize",mPageSize+"")
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    if (mPageIndex == 1) {
+                        mFilterStorageInBeans.clear();
+                    }
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    List<OutboundListBean> list=new ArrayList<>();
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+                                OutboundListBean jltStorageInBean = new OutboundListBean();
+                                jltStorageInBean.setPI_INOUTNO(FastjsonUtil.getText(dataObject, "PI_INOUTNO"));
+                                jltStorageInBean.setPI_CLASS(FastjsonUtil.getText(dataObject, "PI_CLASS"));
+                                jltStorageInBean.setPI_STATUS(FastjsonUtil.getText(dataObject, "PI_STATUS"));
+                                jltStorageInBean.setPI_STATUSCODE(FastjsonUtil.getText(dataObject, "PI_STATUSCODE"));
+                                jltStorageInBean.setPI_WHCODE(FastjsonUtil.getText(dataObject, "PI_WHCODE"));
+                                jltStorageInBean.setPI_ID(FastjsonUtil.getText(dataObject, "PI_ID"));
+                                jltStorageInBean.setPI_INVOSTATUSCODE(FastjsonUtil.getText(dataObject, "PI_INVOSTATUSCODE"));
+                                jltStorageInBean.setPI_INVOSTATUSCODE(FastjsonUtil.getText(dataObject, "PI_INVOSTATUSCODE"));
+                                jltStorageInBean.setPI_INVOSTATUS(FastjsonUtil.getText(dataObject, "PI_INVOSTATUS"));
+                                list.add(jltStorageInBean);
+                            }
+                        }
+                    }
+                    if (mPageIndex == 1) {
+                        mFilterStorageInBeans = list;//PI_INOUTNO
+                        setFilterTableData(mFilterStorageInBeans);
+                    }else if (list.size() > 0) {
+                        mFilterStorageInBeans.addAll(list);
+                        mSmartTable.addData(list, true);
+                        new Handler().postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                mSmartTable.postInvalidate();
+                            }
+                        }, 100);
+//                        filterAllSelect();
+                    } else {
+                        mPageIndex--;
+                    }
+                    progressDialog.dismiss();
+                    mRefreshLayout.finishRefresh(0);
+                    mRefreshLayout.finishLoadMore(0);
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                    mRefreshLayout.finishRefresh(0);
+                    mRefreshLayout.finishLoadMore(0);
+                }
+
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                mRefreshLayout.finishRefresh(0);
+                mRefreshLayout.finishLoadMore(0);
+                if (mPageIndex > 1) {
+                    mPageIndex--;
+                } else {
+                    setFilterTableData(new ArrayList<>());
+                }
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+
+                setFilterTableData(mFilterStorageInBeans);
+                progressDialog.dismiss();
+            }
+        });
+    }
+
+
+    private void setFilterTableData(List<OutboundListBean> filterTableData) {
+        mTableData = new TableData<OutboundListBean>("收料单列表", filterTableData,
+                va_classColumn,va_codeColumn,va_statusColumn,va_vendnameColumn,va_vendcodeColumn);
+        mSmartTable.setTableData(mTableData);
+//        mSmartTable.requestLayout();
+        mSmartTable.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mSmartTable.postInvalidate();
+            }
+        }, 100);
+
+    }
+    private void initPopupWindow() {
+        View view = View.inflate(getActivity(), R.layout.pop_outboundlist_out_menu, null);
+        stockTaskBtn = (Button) view.findViewById(R.id.pop_material_out_menu_1);
+        stockAlreadyBtn = (Button) view.findViewById(R.id.pop_material_out_menu_2);
+        pop_material_out_resolution = (Button) view.findViewById(R.id.pop_material_out_resolution);
+        Button take_apart_the_pallet = view.findViewById(R.id.take_apart_the_pallet);
+        pop_material_out_resolution.setVisibility(View.GONE);
+        stockTaskBtn.setVisibility(View.VISIBLE);
+        stockAlreadyBtn.setVisibility(View.VISIBLE);
+        mFragment = new StorageRechargeListFragment();
+
+        stockTaskBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                FragmentUtils.switchFragment(OutboundLis_Two_fragment.this, mFragment);
+            }
+        });
+
+
+
+        stockTaskBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                mFragment = new IOCOutMakeMaterial();
+//                ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+//                ((FunctionActivity) getActivity()).setScanIvVisible(false);
+                FragmentUtils.switchFragment(OutboundLis_Two_fragment.this, mFragment);
+            }
+        });
+        stockAlreadyBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+
+            }
+        });
+        take_apart_the_pallet.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+
+            }
+        });
+
+
+        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();
+            }
+        });
+    }
+    private void closeMenuPopupWindow() {
+        if (mMenuPopupWindow != null) {
+            mMenuPopupWindow.dismiss();
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+    }
+
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (hidden) {
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+            ((FunctionActivity) getActivity()).setListIconIvVisible(false);
+        } else {
+            FunctionActivity.setTitle(getString(R.string.outboundlist));
+//            ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+            ((FunctionActivity) getActivity()).setListIconIvVisible(false);
+            pop_material_out_resolution.setVisibility(View.GONE);
+            stockTaskBtn.setVisibility(View.VISIBLE);
+            stockAlreadyBtn.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
+    public void onClick(Column<String> column, String value, String s, int position) {
+        String pi_inoutno = mFilterStorageInBeans.get(position).getPI_INOUTNO();
+        NewOutboundDeliveryorderDetailFragment outboundListAdd_fragment = new NewOutboundDeliveryorderDetailFragment();
+        Bundle bundle = new Bundle();
+        bundle.putString("pi_inoutno", pi_inoutno);
+        outboundListAdd_fragment.setArguments(bundle);
+        FragmentUtils.switchFragment(OutboundLis_Two_fragment.this, outboundListAdd_fragment);
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+        ((FunctionActivity) getActivity()).setListIconIvVisible(false);
+        CommonUtil.closeKeybord(storage_recharge_collect_et, mActivity);
+        ((TextView) (getActivity().findViewById(R.id.tv_actionbar_withback))).setText(getString(R.string.outboundlist));
+    }
+
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.storage_recharge_scan_iv:
+                if (CameraUtil.hasCamera()) {
+                    if (root.findFocus() != null) {
+                        mFocusId = root.findFocus().getId();
+                        Intent intent = new Intent();
+                        intent.setClass(mActivity, CaptureActivity.class);
+                        startActivityForResult(intent, SCAN_BARCODE_CODE);
+                    } else {
+                        CommonUtil.toastNoRepeat(mActivity, "请选择您要操作的输入框");
+                    }
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
+                }
+                break;
+            case R.id.btn_actionbar_more:
+                CommonUtil.setBackgroundAlpha(getActivity(), 0.5f);
+                mMenuPopupWindow.showAsDropDown(mMenuButton);
+                break;
+        }
+    }
+
+    @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);
+                if (mFocusId == R.id.storage_recharge_collect_et) {
+                    storage_recharge_collect_et.setText(result);
+                    storage_recharge_collect_et.setSelection(result.length());
+
+                    getDatalistCodes(result);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        // 注销
+    }
+}

+ 172 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/ProductDetailsFragment.java

@@ -0,0 +1,172 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.content.ContextCompat;
+import android.view.KeyEvent;
+import android.view.WindowManager;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.CellInfo;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
+import com.bin.david.form.data.style.FontStyle;
+import com.bin.david.form.data.table.TableData;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.bean.DeliveryorDerdetailBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by cjh-sail on 2023-02-23
+ */
+public class ProductDetailsFragment extends BaseFragment{
+
+    private SmartTable mSmartTable;
+    private String mPiInoutno;
+    private Column<String> mTypeColumn, mcontentColumn, mCnColumn, mOrispeccodeColumn, mCodeColumn, mDetailColumn;
+    private TableData<DeliveryorDerdetailBean> mTableData;
+    private List<DeliveryorDerdetailBean> mFilterStorageInBeans;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.proderdetail_fragment;
+    }
+
+    @Override
+    protected void initViews() {
+        setTitle("产品明细");
+        mSmartTable = root.findViewById(R.id.jlt_storage_in_filter_list_st);
+        mTypeColumn = new Column<String>("型号", "PR_ORISPECCODE");
+        mcontentColumn = new Column<String>("料号", "PD_PRODCODE");
+        mCnColumn = new Column<String>("名称", "PR_DETAIL");
+        mOrispeccodeColumn = new Column<String>("总数", "OUTQTY");
+        mCodeColumn = new Column<String>("已采集", "GETQTY");
+        mDetailColumn = new Column<String>("未采集", "UNGETQTY");
+        mDetailColumn.setFixed(true);
+        mFilterStorageInBeans = new ArrayList<>();
+
+
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
+                .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                    @Override
+                    public int getBackGroundColor(CellInfo cellInfo) {
+                        if (cellInfo.row % 2 == 0) {
+                            return ContextCompat.getColor(mActivity, R.color.blue_50);
+                        }
+                        return TableConfig.INVALID_COLOR;
+                    }
+                });
+
+
+    }
+
+    @Override
+    protected void initEvents() {
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            mPiInoutno = bundle.getString("pi_inoutno");
+        }
+    }
+
+    @Override
+    protected void initDatas() {
+        getCollectList();
+    }
+    public void getCollectList(){
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_DELIVERYORDERDETAIL)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("inoutno",mPiInoutno)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mFilterStorageInBeans.clear();
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    List<DeliveryorDerdetailBean> list=new ArrayList<>();
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+
+                                DeliveryorDerdetailBean deliveryorDerdetailBean = new DeliveryorDerdetailBean();
+                                deliveryorDerdetailBean.setPR_ORISPECCODE(FastjsonUtil.getText(dataObject, "PR_ORISPECCODE"));
+                                deliveryorDerdetailBean.setPD_PRODCODE(FastjsonUtil.getText(dataObject, "PD_PRODCODE"));
+                                deliveryorDerdetailBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+                                deliveryorDerdetailBean.setOUTQTY(FastjsonUtil.getText(dataObject, "OUTQTY"));
+                                deliveryorDerdetailBean.setGETQTY(FastjsonUtil.getText(dataObject, "GETQTY"));
+                                deliveryorDerdetailBean.setUNGETQTY(FastjsonUtil.getText(dataObject, "UNGETQTY"));
+                                list.add(deliveryorDerdetailBean);
+                            }
+                        }
+                    }
+                    mFilterStorageInBeans = list;//PI_INOUTNO
+                    setFilterTableData(mFilterStorageInBeans);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                setFilterTableData(mFilterStorageInBeans);
+            }
+        });
+    }
+    private void setFilterTableData(List<DeliveryorDerdetailBean> filterTableData) {
+        mTableData = new TableData<DeliveryorDerdetailBean>("入库单列表", filterTableData,
+                mTypeColumn, mcontentColumn, mCnColumn, mOrispeccodeColumn, mCodeColumn, mDetailColumn);
+        mSmartTable.setTableData(mTableData);
+//        mSmartTable.requestLayout();
+        new Handler().postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    mSmartTable.postInvalidate();
+                }
+            }, 100);
+    }
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+}

+ 52 - 4
app/src/main/java/com/uas/pda_smart_com_lg/global/GloableParams.java

@@ -237,8 +237,17 @@ public class GloableParams {
     public static String ADDRESS_RECEIVING_NEWBAOCODEIO;
     public static String ADDRESS_PDAIOOUT_DELELTEPREBIOBYID;
     public static String ADDRESS_PDAIO_GET_lOGINDELETE;
-
-
+    public static String ADDRESS_PDAIO_PUT_SAVEBARCODE2CONFIRM;
+    public static String ADDRESS_RECEIVING_SAVEBARCODE2;
+    public static String ADDRESS_JLT_RECEIVING_CHECKOUTBOX;
+    public static String ADDRESS_JLT_RECEIVING_DELETEOUTBOX;
+    public static String ADDRESS_JLT_RECEIVING_GETOUTBOXDATA;
+    public static String ADDRESS_JLT_RECEIVING_GETINDATALIST;
+    public static String ADDRESS_DOCUMENTLIBRARY_DELIVERYORDERDETAIL;
+    public static String ADDRESS_DOCUMENTLIBRARY_MAKECOLLECTBOXLIST;
+    public static String ADDRESS_DOCUMENTLIBRARY_MAKEINWARHOUSE;
+    public static String ADDRESS_DOCUMENTLIBRARY_OUTBOUNDLIST;
+    public static String ADDRESS_DOCUMENTLIBRARY_MAKEOUTWARHOUSE;
 
 
 
@@ -579,6 +588,28 @@ public class GloableParams {
     //入库扫描已采集列表长按删除
     private static final String ADDRESSTAIL_PDAIO_GET_lOGINDELETE="/api/pda/receiving/deleteAllBarDetails.action";
 
+    //入库扫描保存
+    private static final String ADDRESSTAIL_PDAIO_PUT_SAVEBARCODE2CONFIRM="/api/pda/receiving/saveBarcode2Confirm.action";
+    //入库采集
+    private static final String ADDRESSTAIL_RECEIVING_SAVEBARCODE2 = "/api/pda/receiving/saveBarcode2.action";
+    //校验外箱号
+    private static final String ADDRESSTAIL_JLT_RECEIVING_CHECKOUTBOX = "/api/pda/receiving/checkOutBox.action";
+    //入库撤销箱采集
+    private static final String ADDRESSTAIL_JLT_RECEIVING_DELETEOUTBOX = "/api/pda/receiving/deleteOutBox.action";
+    //根据箱号获取箱内信息
+    private static final String ADDRESSTAIL_JLT_RECEIVING_GETOUTBOXDATA = "/api/pda/receiving/getOutBoxData.action";
+    //入库单列表
+    private static final String ADDRESSTAIL_JLT_RECEIVING_GETINDATALIST = "/api/pda/receiving/getInDataList.action";
+    private static final String ADDRESSTAIL_DELIVERYORDERDETAIL = "/api/pda/receiving/makeCollectList.action";
+    //单据入库详情列表
+    private static final String ADDRESSTAIL_MAKECOLLECTBOXLIST = "/api/pda/receiving/makeCollectBoxList.action";
+    private static final String ADDRESSTAIL_MAKEINWARHOUSE = "/api/pda/receiving/makeInWarhouse.action";
+    //出库单列表
+    private static String ADDRESSTAIL_OUTBOUNDLIST = "/api/pda/receiving/getOutDataList.action";
+    private static final String ADDRESSTAIL_MAKEOUTWARHOUSE = "/api/pda/receiving/makeOutWarhouse.action";
+
+
+
 
     /**
      * 完工品入库
@@ -716,13 +747,19 @@ public class GloableParams {
     public static final String GRIDNAME_MODIFY_QUANTITY = "条码数量修改";
     public static final String GRIDNAME_BOM_CHECK = "BOM校验";
     public static final String MENU_STORAGE_STOCK_INFO_COLLECT = "库存条码绑定";
+    public static final String GRIDNAME_FINISHED_PRODUCT_STORAGE = "成品入库";
+    public static final String GRIDNAME_FINISHED_PRODUCT_OUTBOUND = "成品出库";
     public static final String[] storageGridNames = {GRIDNAME_GOOD_SEARCH, GRIDNAME_BATCH_OPRATION,
-            GRIDNAME_STORAGE_TRANSFER, GRIDNAME_MODIFY_QUANTITY, GRIDNAME_WORK_INVENTORY, GRIDNAME_BOM_CHECK,MENU_STORAGE_STOCK_INFO_COLLECT};
+            GRIDNAME_STORAGE_TRANSFER, GRIDNAME_MODIFY_QUANTITY, GRIDNAME_WORK_INVENTORY, GRIDNAME_BOM_CHECK,MENU_STORAGE_STOCK_INFO_COLLECT,
+            GRIDNAME_FINISHED_PRODUCT_STORAGE,
+            GRIDNAME_FINISHED_PRODUCT_OUTBOUND};
     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, R.drawable.storage_msd_manager,
-            R.drawable.storage_transfer};
+            R.drawable.storage_transfer,
+            R.drawable.ic_finished_product_storage,
+            R.drawable.ic_finished_product_outbound};
     //DETAIL:搜索备料单号,下拉列表
     public static final String SPINNER_PREPARE_SEARCH = "搜索备料单号";
     public static final String SPINNER_MAKECODE_SEARCH = "搜索制造单号";
@@ -1046,6 +1083,17 @@ public class GloableParams {
         GloableParams.ADDRESS_RECEIVING_NEWBAOCODEIO = uriHead + GloableParams.ADDRESSTAIL_RECEIVING_NEWBAOCODEIO;
         GloableParams.ADDRESS_PDAIOOUT_DELELTEPREBIOBYID = uriHead + GloableParams.ADDRESSTAIL_PDAIOOUT_DELELTEPREBIOBYID;
         GloableParams.ADDRESS_PDAIO_GET_lOGINDELETE = uriHead + GloableParams.ADDRESSTAIL_PDAIO_GET_lOGINDELETE;
+        GloableParams.ADDRESS_PDAIO_PUT_SAVEBARCODE2CONFIRM = uriHead + GloableParams.ADDRESSTAIL_PDAIO_PUT_SAVEBARCODE2CONFIRM;
+        GloableParams.ADDRESS_RECEIVING_SAVEBARCODE2 = uriHead + GloableParams.ADDRESSTAIL_RECEIVING_SAVEBARCODE2;
+        GloableParams.ADDRESS_JLT_RECEIVING_CHECKOUTBOX = uriHead + GloableParams.ADDRESSTAIL_JLT_RECEIVING_CHECKOUTBOX;
+        GloableParams.ADDRESS_JLT_RECEIVING_DELETEOUTBOX = uriHead + GloableParams.ADDRESSTAIL_JLT_RECEIVING_DELETEOUTBOX;
+        GloableParams.ADDRESS_JLT_RECEIVING_GETOUTBOXDATA = uriHead + GloableParams.ADDRESSTAIL_JLT_RECEIVING_GETOUTBOXDATA;
+        GloableParams.ADDRESS_JLT_RECEIVING_GETINDATALIST = uriHead + GloableParams.ADDRESSTAIL_JLT_RECEIVING_GETINDATALIST;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_DELIVERYORDERDETAIL= uriHead + GloableParams.ADDRESSTAIL_DELIVERYORDERDETAIL;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKECOLLECTBOXLIST= uriHead + GloableParams.ADDRESSTAIL_MAKECOLLECTBOXLIST;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKEINWARHOUSE= uriHead + GloableParams.ADDRESSTAIL_MAKEINWARHOUSE;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_OUTBOUNDLIST= uriHead + GloableParams.ADDRESSTAIL_OUTBOUNDLIST;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKEOUTWARHOUSE= uriHead + GloableParams.ADDRESSTAIL_MAKEOUTWARHOUSE;
 
 
 

+ 2 - 2
app/src/main/java/com/uas/pda_smart_com_lg/util/PrintUtils.java

@@ -72,7 +72,7 @@ public class PrintUtils {
                                     printHelper = printHelper.printText(printText)
                                             .setX(printX)
                                             .setY(printY + (int) ((0.6 * dpi) / 25.4))
-                                            .setBold(2)
+//                                            .setBold(2)
                                             .setTextFont(textFont)
                                             .setTextFont(fontSize)
                                             .build();
@@ -81,7 +81,7 @@ public class PrintUtils {
                                     printHelper = printHelper.printQr(printText)
                                             .setX(printX)
                                             .setY(printY)
-                                            .setTextSize(2)
+                                            .setTextSize(fontSize)
                                             .setModel(2)
                                             .build();
                                     break;

BIN
app/src/main/res/drawable-hdpi/ic_check.png


BIN
app/src/main/res/drawable-hdpi/ic_uncheck.png


BIN
app/src/main/res/drawable/ic_finished_product_outbound.png


BIN
app/src/main/res/drawable/ic_finished_product_storage.png


+ 61 - 0
app/src/main/res/layout/fragment_jlt_revoke_box.xml

@@ -0,0 +1,61 @@
+<?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="@dimen/root_layout_padding">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="10dp">
+
+        <TextView
+            style="@style/tl_tv_style"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:paddingLeft="16dp"
+            android:paddingRight="16dp"
+            android:text="箱号"
+            android:textColor="@color/body_text_1"
+            android:textSize="16sp" />
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/jlt_storage_in_box_scan_box_et"
+            style="@style/EditTextStyle"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:hint="需要撤销采集的箱号"
+            android:imeOptions="actionSend"
+            android:textColor="@color/black" />
+
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/jlt_storage_in_box_scan_confirm_btn"
+        style="@style/ButtonStyle"
+        android:layout_marginTop="16dp"
+        android:enabled="false"
+        android:text="确认撤销采集" />
+
+
+    <TextView
+        android:id="@+id/jlt_storage_in_box_scan_result_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginRight="10dp"
+        android:visibility="visible"
+        tools:text="采集成功,条码:786528238;数量:2;料号:209837;名称规格:瓶子" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/jlt_storage_in_box_scan_result_rv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp" />
+</LinearLayout>

+ 591 - 0
app/src/main/res/layout/fragment_jlt_storage_in_barcode.xml

@@ -0,0 +1,591 @@
+<?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:background="#f2f2f2"
+    android:orientation="vertical"
+    android:padding="@dimen/root_layout_padding">
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:gravity="center"
+            android:layout_gravity="center"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="单号:"
+            android:textColor="#333333" />
+
+        <TextView
+            android:gravity="center"
+            android:layout_gravity="center"
+            android:id="@+id/jlt_storage_in_barcode_box_tv"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textColor="#333333"
+            tools:text="2138424923" />
+        <TextView
+            android:gravity="center"
+            android:layout_gravity="center"
+            android:id="@+id/jlt_storage_in_todo_list_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#333333"
+            tools:text="采购验收单" />
+        <CheckBox
+            android:gravity="center"
+            android:layout_gravity="center"
+            android:id="@+id/jlt_check_ok"
+            android:text="采集唯一码"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content">
+        </CheckBox>
+
+    </LinearLayout>
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:background="@drawable/bg_line_edittext">
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/jlt_storage_in_barcode_barcode_et"
+            style="@style/EditTextStyle"
+            android:layout_weight="1"
+            android:background="@null"
+            android:focusable="true"
+            android:selectAllOnFocus="true"
+            android:hint="请采集条码号/二维码"
+            android:imeOptions="actionSend"
+            android:textColor="@color/black" />
+
+        <ImageView
+            android:id="@+id/jlt_storage_in_barcode_scan_iv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginRight="10dp"
+            android:clickable="false"
+            android:src="@drawable/ic_edittext_scan" />
+    </LinearLayout>
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="6dp"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:visibility="gone"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="4dp">
+
+                <TextView
+                    style="@style/tl_tv_style"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:minWidth="60dp"
+                    android:text="品牌"
+                    android:textColor="@color/body_text_1"
+                    android:textSize="16sp" />
+
+                <com.uas.pda_smart_com_lg.view.ClearableEditText
+                    android:id="@+id/jlt_storage_in_barcode_model_et"
+                    style="@style/EditTextStyle"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:hint="请采集品牌" />
+
+                <ImageView
+                    android:visibility="gone"
+                    android:id="@+id/jlt_storage_in_barcode_model_scan_iv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:layout_gravity="center"
+                    android:background="@color/white"
+                    android:clickable="false"
+                    android:paddingRight="10dp"
+                    android:src="@drawable/ic_edittext_scan" />
+            </LinearLayout>
+
+
+
+
+
+            <LinearLayout
+                android:visibility="gone"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="4dp">
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1">
+
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="数量"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_storage_in_barcode_quantity_et"
+                        style="@style/EditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:inputType="numberDecimal" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1">
+
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="MPQ"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_storage_in_barcode_mpq_et"
+                        style="@style/EditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:inputType="numberDecimal" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <LinearLayout
+                android:visibility="gone"
+                android:id="@+id/material_in_collect_datecode_tr"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="4dp">
+
+                <TextView
+                    android:id="@+id/material_in_collect_datecode_tv"
+                    style="@style/tl_tv_style"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:minWidth="60dp"
+                    android:text="日期"
+                    android:textColor="@color/body_text_1"
+                    android:textSize="16sp" />
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:background="@color/white">
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_storage_in_barcode_date_et"
+                        style="@style/EditTextStyle"
+                        android:layout_width="236dp"
+                        android:layout_weight="1"
+                        android:enabled="true"
+                        android:focusable="true"
+                        android:focusableInTouchMode="true"
+                        android:hint="请选择日期"
+                        android:longClickable="true"
+                        android:textColor="@color/black" />
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:visibility="gone"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="4dp">
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1">
+
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="品牌"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_storage_in_barcode_brand_et"
+                        style="@style/EditTextUnableStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1">
+
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="盘"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <TextView
+                        android:id="@+id/jlt_storage_in_barcode_reel_et"
+                        style="@style/EditTextUnableStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:inputType="numberDecimal" />
+                </LinearLayout>
+            </LinearLayout>
+
+
+            <LinearLayout
+                android:visibility="gone"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="4dp">
+
+                <CheckBox
+                    android:id="@+id/jlt_storage_in_barcode_po_cb"
+                    style="@style/tl_tv_style"
+                    android:layout_height="match_parent"
+                    android:layout_marginLeft="6dp"
+                    android:checked="false"
+                    android:gravity="center"
+                    android:paddingRight="10dp"
+                    android:text="PO"
+                    android:textColor="@color/body_text_1"
+                    android:textSize="16sp" />
+
+                <com.uas.pda_smart_com_lg.view.ClearableEditText
+                    android:id="@+id/jlt_storage_in_barcode_po_et"
+                    style="@style/EditTextStyle"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:hint="请采集PO号" />
+            </LinearLayout>
+
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="4dp"
+                android:visibility="gone">
+
+                <TextView
+                    style="@style/tl_tv_style"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:minWidth="60dp"
+                    android:text="封装"
+                    android:textColor="@color/body_text_1"
+                    android:textSize="16sp" />
+
+                <com.uas.pda_smart_com_lg.view.ClearableEditText
+                    android:id="@+id/jlt_storage_in_barcode_enclosure_et"
+                    style="@style/EditTextUnableStyle"
+                    android:layout_width="0dp"
+                    android:layout_weight="1" />
+
+                <ImageView
+                    android:id="@+id/jlt_storage_in_barcode_enclosure_filter_iv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:background="#ececec"
+                    android:padding="10dp"
+                    android:src="@drawable/icon_search" />
+            </LinearLayout>
+
+            <RadioGroup
+                android:visibility="gone"
+                android:id="@+id/jlt_pick_material_out_scan_menu_rg"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:paddingTop="6dp"
+                android:paddingBottom="6dp">
+
+                <RadioButton
+                    android:id="@+id/jlt_pick_material_out_scan_info_rb"
+                    android:layout_width="0dp"
+                    android:layout_height="30dp"
+                    android:layout_weight="1"
+                    android:background="@drawable/selector_radio_bg"
+                    android:button="@null"
+                    android:gravity="center"
+                    android:text="采集信息"
+                    android:textColor="@color/selector_radio_text_color" />
+
+                <RadioButton
+                    android:id="@+id/jlt_pick_material_out_scan_sign_rb"
+                    android:layout_width="0dp"
+                    android:layout_height="30dp"
+                    android:layout_weight="1"
+                    android:background="@drawable/selector_radio_bg"
+                    android:button="@null"
+                    android:checked="true"
+                    android:gravity="center"
+                    android:text="待采提示"
+                    android:textColor="@color/selector_radio_text_color" />
+            </RadioGroup>
+            <android.support.v7.widget.RecyclerView
+                android:visibility="gone"
+                android:id="@+id/jlt_storage_in_todo_list_rv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+            <LinearLayout
+                android:id="@+id/jlt_line_edit"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
+
+                <LinearLayout
+                    android:id="@+id/jlt_storage_in_barcode_line"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="4dp">
+
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="条码号"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_storage_in_barcode_et"
+                        style="@style/EditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:lines="1"
+                        android:hint="请采集条码号" />
+
+                    <ImageView
+                        android:visibility="gone"
+                        android:id="@+id/jlt_storage_in_barcode_iv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:layout_gravity="center"
+                        android:background="@color/white"
+                        android:clickable="false"
+                        android:paddingRight="10dp"
+                        android:src="@drawable/ic_edittext_scan" />
+                </LinearLayout>
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="数量"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_edit_QTY"
+                        style="@style/jltEditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:lines="1"
+                        android:hint="请输入数量" />
+
+                </LinearLayout>
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="4dp">
+
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="仓位"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_storage_in_barcode_lot_et"
+                        style="@style/jltEditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:lines="1"
+                        android:hint="请采集仓位" />
+                    <CheckBox
+                        android:id="@+id/check_box_positions"
+                        android:layout_gravity="center"
+                        android:gravity="center"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"/>
+                </LinearLayout>
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="LotNo"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_edit_lotno"
+                        style="@style/jltEditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:lines="1"
+                        android:hint="请输入LotNo" />
+                    <CheckBox
+                        android:id="@+id/check_box_lono"
+                        android:layout_gravity="center"
+                        android:gravity="center"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"/>
+                </LinearLayout>
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="DC(日期)"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_edit_dataecode"
+                        style="@style/jltEditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:lines="1"
+                        android:hint="请输入日期" />
+                    <ImageView
+                        android:id="@+id/jlt_storage_in_barcode_date_iv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/bg_edittext"
+                        android:clickable="false"
+                        android:src="@drawable/ic_calendar" />
+                    <CheckBox
+                        android:id="@+id/check_box_date"
+                        android:layout_gravity="center"
+                        android:gravity="center"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"/>
+
+                </LinearLayout>
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                    <TextView
+                        style="@style/tl_tv_style"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:minWidth="60dp"
+                        android:text="DC(字符)"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.pda_smart_com_lg.view.ClearableEditText
+                        android:id="@+id/jlt_edit_DC"
+                        style="@style/jltEditTextStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1"
+                        android:lines="1"
+                        android:hint="请输入字符" />
+                    <CheckBox
+                        android:id="@+id/check_box_dc"
+                        android:layout_gravity="center"
+                        android:gravity="center"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"/>
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+
+
+        </LinearLayout>
+
+
+
+
+    </ScrollView>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <Button
+            android:id="@+id/jlt_storage_in_barcode_next_btn"
+            style="@style/ButtonStyle"
+            android:layout_width="0dp"
+            android:layout_margin="12dp"
+            android:layout_weight="1"
+            android:text="保存并下一箱"
+            android:visibility="gone" />
+
+
+        <Button
+            android:id="@+id/jlt_storage_in_barcode_save_btn"
+            style="@style/ButtonStyle"
+            android:layout_width="0dp"
+            android:layout_margin="12dp"
+            android:layout_weight="1"
+            android:text="保存"
+            />
+
+    </LinearLayout>
+    <TextView
+        android:id="@+id/material_in_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:visibility="gone"
+        tools:visibility="visible"
+        tools:text="采集成功,条码:786528238;数量:2;料号:209837;名称规格:瓶子" />
+</LinearLayout>

+ 63 - 0
app/src/main/res/layout/fragment_jlt_storage_in_box_scan.xml

@@ -0,0 +1,63 @@
+<?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="@dimen/root_layout_padding">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/jlt_storage_in_box_scan_type_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#333333"
+            tools:text="采购验收单" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="12dp"
+            android:text="单号:"
+            android:textColor="#333333" />
+
+        <TextView
+            android:id="@+id/jlt_storage_in_box_scan_num_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="#333333"
+            tools:text="SD12312435341" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="10dp">
+
+        <TextView
+            style="@style/tl_tv_style"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:paddingLeft="16dp"
+            android:paddingRight="16dp"
+            android:text="箱号"
+            android:textColor="@color/body_text_1"
+            android:textSize="16sp" />
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/jlt_storage_in_box_scan_box_et"
+            style="@style/EditTextStyle"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:hint="请采集箱号"
+            android:imeOptions="actionSend"
+            android:textColor="@color/black" />
+
+    </LinearLayout>
+
+</LinearLayout>

+ 80 - 0
app/src/main/res/layout/fragment_jlt_storage_in_filter_list.xml

@@ -0,0 +1,80 @@
+<?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"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:id="@+id/stock_barcode_list_search_rl"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal"
+        android:padding="5dp">
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/jlt_storage_in_filter_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/jlt_storage_in_filter_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"
+            android:visibility="gone" />
+    </LinearLayout>
+
+
+    <com.scwang.smartrefresh.layout.SmartRefreshLayout
+        android:id="@+id/pda_wms_in_filter_list_srl"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1">
+
+        <com.scwang.smartrefresh.layout.header.ClassicsHeader
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" />
+
+        <com.bin.david.form.core.SmartTable
+            android:id="@+id/jlt_storage_in_filter_list_st"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.scwang.smartrefresh.layout.footer.ClassicsFooter
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:srlAccentColor="@android:color/darker_gray" />
+    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:visibility="gone">
+
+        <TextView
+            android:id="@+id/jlt_storage_in_filter_list_multiple_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="20dp"
+            android:background="@color/text_blue"
+            android:gravity="center"
+            android:padding="8dp"
+            android:text="合并入库 >>"
+            android:textColor="@color/white"
+            android:textSize="16sp" />
+    </RelativeLayout>
+</LinearLayout>

+ 45 - 0
app/src/main/res/layout/item_revoke_box_list.xml

@@ -0,0 +1,45 @@
+<?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="vertical"
+    android:padding="6dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="箱内型号:"
+            android:textColor="#333333" />
+
+        <TextView
+            android:id="@+id/item_jlt_revoke_box_model_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="#666666"
+            tools:text="20342409808" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="数量:"
+            android:textColor="#333333" />
+
+        <TextView
+            android:id="@+id/item_jlt_revoke_box_quantity_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:textColor="#666666"
+            tools:text="1234" />
+    </LinearLayout>
+</LinearLayout>

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

@@ -0,0 +1,117 @@
+<?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_marginTop="@dimen/dp_10"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:layout_marginRight="@dimen/dp_10"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:text="单号:">
+        </TextView>
+        <TextView
+            android:layout_marginLeft="5dp"
+            android:id="@+id/tv_pi_inoutno"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_gravity="center"
+            android:gravity="left"
+            android:textColor="@color/black"
+            android:layout_marginRight="@dimen/space_left_5"
+            android:text="">
+        </TextView>
+        <TextView
+            android:id="@+id/tv_productdetails"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@color/gray_light"
+            android:padding="5dp"
+            android:text="产品明细">
+        </TextView>
+    </LinearLayout>
+    <TextView
+        android:id="@+id/tv_qty"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@color/black"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:text="">
+    </TextView>
+    <com.bin.david.form.core.SmartTable
+        android:layout_marginTop="@dimen/dp_10"
+        android:id="@+id/jlt_storage_in_filter_list_st"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_weight="1" />
+    <TextView
+        android:id="@+id/tv_hint"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="5dp"
+        android:text="">
+    </TextView>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <RadioGroup
+            android:id="@+id/radiogroup1"
+            android:layout_height="wrap_content"
+            android:layout_width="match_parent"
+            android:orientation="horizontal">
+
+            <RadioButton
+                android:id="@+id/radiobutton1"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:text="箱号" />
+
+            <RadioButton
+                android:id="@+id/radiobutton2"
+                android:layout_marginLeft="@dimen/textsize_20"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:text="单台序列号" />
+
+        </RadioGroup>
+
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:layout_marginBottom="@dimen/dp_10">
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/jlt_storage_in_barcode_barcode_et"
+            style="@style/EditTextStyle"
+            android:layout_weight="1"
+            android:background="@drawable/bg_line_edittext"
+            android:focusable="true"
+            android:selectAllOnFocus="true"
+            android:hint="请采集条码号/二维码"
+            android:imeOptions="actionSend"
+            android:textColor="@color/black"
+            />
+        <CheckBox
+            android:id="@+id/ck_cancel"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/dp_10"
+            android:text="取消">
+        </CheckBox>
+    </LinearLayout>
+
+
+
+</LinearLayout>

+ 120 - 0
app/src/main/res/layout/newoutbounddeliveryorderdetail_fragment.xml

@@ -0,0 +1,120 @@
+<?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_marginTop="@dimen/dp_10"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:layout_marginRight="@dimen/dp_10"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:text="单号:">
+        </TextView>
+        <TextView
+            android:layout_marginLeft="5dp"
+            android:id="@+id/tv_pi_inoutno"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:layout_gravity="center"
+            android:gravity="left"
+            android:textColor="@color/black"
+            android:layout_marginRight="@dimen/space_left_5"
+            android:text="">
+        </TextView>
+        <TextView
+            android:id="@+id/tv_productdetails"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@color/gray_light"
+            android:padding="5dp"
+            android:text="产品明细">
+        </TextView>
+    </LinearLayout>
+    <TextView
+        android:id="@+id/tv_qty"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@color/black"
+        android:layout_marginLeft="@dimen/dp_10"
+        android:text="">
+    </TextView>
+
+    <com.bin.david.form.core.SmartTable
+        android:layout_marginTop="@dimen/dp_10"
+        android:id="@+id/jlt_storage_in_filter_list_st"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_weight="1" />
+    <TextView
+        android:id="@+id/tv_hint"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="5dp"
+        android:text="">
+    </TextView>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <RadioGroup
+            android:id="@+id/radiogroup1"
+            android:layout_height="wrap_content"
+            android:layout_width="match_parent"
+            android:orientation="horizontal">
+
+            <RadioButton
+                android:id="@+id/radiobutton1"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:text="箱号" />
+
+            <RadioButton
+                android:id="@+id/radiobutton2"
+                android:layout_marginLeft="@dimen/textsize_20"
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:text="单台序列号" />
+
+        </RadioGroup>
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
+        android:layout_marginBottom="@dimen/dp_10">
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/jlt_storage_in_barcode_barcode_et"
+            style="@style/EditTextStyle"
+            android:layout_weight="1"
+            android:background="@drawable/bg_line_edittext"
+            android:focusable="true"
+            android:selectAllOnFocus="true"
+            android:hint="请采集条码号/二维码"
+            android:imeOptions="actionSend"
+            android:textColor="@color/black"
+            />
+        <CheckBox
+            android:id="@+id/ck_cancel"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/dp_10"
+            android:text="取消">
+        </CheckBox>
+    </LinearLayout>
+
+
+
+
+</LinearLayout>

+ 47 - 0
app/src/main/res/layout/pop_outboundlist_out_menu.xml

@@ -0,0 +1,47 @@
+<?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_material_out_menu_1"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:background="@color/transparent"
+        android:text="出库单"
+        android:textSize="@dimen/app_text_size_body_2" />
+
+    <Button
+        android:id="@+id/pop_material_out_menu_2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:background="@color/transparent"
+        android:text="新增"
+        android:textSize="@dimen/app_text_size_body_2" />
+    <Button
+        android:id="@+id/pop_material_out_resolution"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:background="@color/transparent"
+        android:text="拆批"
+        android:textSize="@dimen/app_text_size_body_2" />
+    <Button
+        android:id="@+id/take_apart_the_pallet"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:background="@color/transparent"
+        android:text="物料变更"
+        android:textSize="@dimen/app_text_size_body_2" />
+
+</LinearLayout>

+ 13 - 0
app/src/main/res/layout/proderdetail_fragment.xml

@@ -0,0 +1,13 @@
+<?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">
+    <com.bin.david.form.core.SmartTable
+        android:layout_marginTop="@dimen/dp_10"
+        android:id="@+id/jlt_storage_in_filter_list_st"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_weight="1" />
+
+</LinearLayout>

+ 55 - 0
app/src/main/res/layout/storagerechargetwo_fragment.xml

@@ -0,0 +1,55 @@
+<?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"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:orientation="vertical">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="@dimen/textsize_16"
+        android:background="@drawable/bg_line_edittext">
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/storage_recharge_collect_et"
+            style="@style/EditTextStyle"
+            android:layout_weight="1"
+            android:background="@null"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:hint="请采集单号"
+            android:imeOptions="actionSend"
+            android:textColor="@color/black" />
+
+        <ImageView
+            android:id="@+id/storage_recharge_scan_iv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginRight="10dp"
+            android:clickable="false"
+            android:src="@drawable/ic_edittext_scan" />
+    </LinearLayout>
+    <com.scwang.smartrefresh.layout.SmartRefreshLayout
+        android:id="@+id/pda_wms_in_filter_list_srl"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1">
+
+        <com.scwang.smartrefresh.layout.header.ClassicsHeader
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" />
+
+        <com.bin.david.form.core.SmartTable
+            android:id="@+id/jlt_storage_in_filter_list_st"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.scwang.smartrefresh.layout.footer.ClassicsFooter
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:srlAccentColor="@android:color/darker_gray" />
+    </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+</LinearLayout>

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

@@ -422,7 +422,7 @@
     <string name="title_storage_inspection">送检</string>
     <string name="title_storage_iqc">IQC入库</string>
     <string name="title_storage_recharge">收料</string>
-
+    <string name="outboundlist">成品出库单列表</string>
     <string-array name="material_collect_menu">
         <item>已采集列表</item>
         <item>未采集明细</item>

+ 2 - 2
build.gradle

@@ -43,8 +43,8 @@ ext {
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 21,
-            versionName      : "v2.1"
+            versionCode      : 23,
+            versionName      : "v2.3"
     ]
 
     depsVersion = [