ソースを参照

第二次需求调整完毕

RaoMeng 6 年 前
コミット
1199c20b4f
32 ファイル変更1209 行追加390 行削除
  1. 1 0
      app/build.gradle
  2. 6 2
      app/src/main/java/com/uas/jlt_storage/adapter/JLTSearchWhcodeAdapter.java
  3. 3 0
      app/src/main/java/com/uas/jlt_storage/adapter/JltStorageInFilterAdapter.java
  4. 10 0
      app/src/main/java/com/uas/jlt_storage/bean/JLTBarcodeParseBean.java
  5. 19 0
      app/src/main/java/com/uas/jlt_storage/bean/JLTBoxBean.java
  6. 9 0
      app/src/main/java/com/uas/jlt_storage/bean/JLTMaterialBean.java
  7. 18 0
      app/src/main/java/com/uas/jlt_storage/bean/JLTPickMaterialBean.java
  8. 18 0
      app/src/main/java/com/uas/jlt_storage/bean/JLTStorageModelBean.java
  9. 9 0
      app/src/main/java/com/uas/jlt_storage/bean/WhcodeBean.java
  10. 64 1
      app/src/main/java/com/uas/jlt_storage/fragment/JLTPickMaterialOutBoxFragment.java
  11. 110 4
      app/src/main/java/com/uas/jlt_storage/fragment/JLTPickMaterialOutFragment.java
  12. 202 30
      app/src/main/java/com/uas/jlt_storage/fragment/JLTPickMaterialOutScanFragment.java
  13. 1 0
      app/src/main/java/com/uas/jlt_storage/fragment/JLTRevokeBoxFragment.java
  14. 51 40
      app/src/main/java/com/uas/jlt_storage/fragment/JLTStockInquiryLocationFragment.java
  15. 48 38
      app/src/main/java/com/uas/jlt_storage/fragment/JLTStockInquiryModelFragment.java
  16. 92 18
      app/src/main/java/com/uas/jlt_storage/fragment/JLTStorageInBarcodeFragment.java
  17. 75 3
      app/src/main/java/com/uas/jlt_storage/fragment/JLTStorageMaterialMoveDetailFragment.java
  18. 97 6
      app/src/main/java/com/uas/jlt_storage/fragment/JLTStorageMaterialMoveFragment.java
  19. 13 2
      app/src/main/java/com/uas/jlt_storage/fragment/JLTUpperShelfBoxFragment.java
  20. 17 14
      app/src/main/java/com/uas/jlt_storage/fragment/JltStorageInFilterFragment.java
  21. 4 3
      app/src/main/java/com/uas/jlt_storage/fragment/JltStorageInFilterListFragment.java
  22. 8 0
      app/src/main/java/com/uas/jlt_storage/global/GloableParams.java
  23. 6 0
      app/src/main/res/layout/fragment_jlt_pick_material_out.xml
  24. 32 6
      app/src/main/res/layout/fragment_jlt_pick_material_out_box.xml
  25. 194 122
      app/src/main/res/layout/fragment_jlt_pick_material_out_scan.xml
  26. 4 5
      app/src/main/res/layout/fragment_jlt_stock_inquiry_location.xml
  27. 4 5
      app/src/main/res/layout/fragment_jlt_stock_inquiry_model.xml
  28. 46 31
      app/src/main/res/layout/fragment_jlt_storage_in_barcode.xml
  29. 8 12
      app/src/main/res/layout/fragment_jlt_storage_in_filter.xml
  30. 9 1
      app/src/main/res/layout/fragment_jlt_storage_material_move.xml
  31. 26 44
      app/src/main/res/layout/item_jlt_storage_in_filter.xml
  32. 5 3
      build.gradle

+ 1 - 0
app/build.gradle

@@ -83,6 +83,7 @@ dependencies {
     implementation deps.smartRefreshHeader
     implementation deps.recyclerview
     implementation deps.permisson
+    implementation deps.smartTable
 }
 
 def getVersionName() {

+ 6 - 2
app/src/main/java/com/uas/jlt_storage/adapter/JLTSearchWhcodeAdapter.java

@@ -3,6 +3,7 @@ package com.uas.jlt_storage.adapter;
 import android.graphics.Color;
 import android.support.annotation.Nullable;
 import android.text.SpannableStringBuilder;
+import android.text.TextUtils;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
@@ -25,8 +26,11 @@ public class JLTSearchWhcodeAdapter extends BaseQuickAdapter<WhcodeBean, BaseVie
         String description = item.getWhDes();
 
         mSpanUtils = new SpanUtils();
-        SpannableStringBuilder result = mSpanUtils.append(whcode).setForegroundColor(Color.BLACK).append("(" + description + ")").setForegroundColor(Color.GRAY).create();
-
+        mSpanUtils = mSpanUtils.append(whcode).setForegroundColor(Color.BLACK);
+        if (!TextUtils.isEmpty(description)) {
+            mSpanUtils = mSpanUtils.append("(" + description + ")").setForegroundColor(Color.GRAY);
+        }
+        SpannableStringBuilder result = mSpanUtils.create();
         helper.setText(R.id.list_warehouse_tv, result);
     }
 }

+ 3 - 0
app/src/main/java/com/uas/jlt_storage/adapter/JltStorageInFilterAdapter.java

@@ -47,6 +47,9 @@ public class JltStorageInFilterAdapter extends BaseQuickAdapter<JLTStorageInBean
     @Override
     protected void convert(BaseViewHolder helper, JLTStorageInBean item) {
         helper.setText(R.id.item_jlt_storage_in_filter_num_tv, item.getPI_INOUTNO());
+        helper.setText(R.id.item_jlt_storage_in_filter_state_tv, item.getPI_STATUS());
+        helper.setText(R.id.item_jlt_storage_in_filter_type_tv, item.getPI_CLASS());
+
         helper.setImageResource(R.id.item_jlt_storage_in_filter_spread_iv,
                 item.isSpread() ? R.drawable.ic_menu_spread : R.drawable.ic_menu_retract);
 

+ 10 - 0
app/src/main/java/com/uas/jlt_storage/bean/JLTBarcodeParseBean.java

@@ -39,6 +39,8 @@ public class JLTBarcodeParseBean {
     private String DATA;
     @JSONField(name = "PAN")
     private int PAN;
+    @JSONField(name = "PR_PKG")
+    private String PR_PKG;
 
     public String getDATECODE() {
         return DATECODE;
@@ -135,4 +137,12 @@ public class JLTBarcodeParseBean {
     public void setPAN(int PAN) {
         this.PAN = PAN;
     }
+
+    public String getPR_PKG() {
+        return PR_PKG;
+    }
+
+    public void setPR_PKG(String PR_PKG) {
+        this.PR_PKG = PR_PKG;
+    }
 }

+ 19 - 0
app/src/main/java/com/uas/jlt_storage/bean/JLTBoxBean.java

@@ -11,12 +11,23 @@ public class JLTBoxBean implements Serializable {
      * “BOXCODE” : ”H0234”
      * “QTY” : 12344
      * “TRAYNO” : 13
+     * “CU_PRINT_LIMITEDDATE” : “”
      */
 
+    private long POS;
     private String LOCATION;
     private String BOXCODE;
     private double QTY;
     private double TRAYNO;
+    private long CU_PRINT_LIMITEDDATE;
+
+    public long getPOS() {
+        return POS;
+    }
+
+    public void setPOS(long POS) {
+        this.POS = POS;
+    }
 
     public String getLOCATION() {
         return LOCATION;
@@ -49,4 +60,12 @@ public class JLTBoxBean implements Serializable {
     public void setTRAYNO(double TRAYNO) {
         this.TRAYNO = TRAYNO;
     }
+
+    public long getCU_PRINT_LIMITEDDATE() {
+        return CU_PRINT_LIMITEDDATE;
+    }
+
+    public void setCU_PRINT_LIMITEDDATE(long CU_PRINT_LIMITEDDATE) {
+        this.CU_PRINT_LIMITEDDATE = CU_PRINT_LIMITEDDATE;
+    }
 }

+ 9 - 0
app/src/main/java/com/uas/jlt_storage/bean/JLTMaterialBean.java

@@ -14,6 +14,7 @@ public class JLTMaterialBean implements Serializable {
      * BAR_WHCODE : XXX
      */
 
+    private long POS;
     private String BAR_PRODCODE;
     private String BAR_MPN;
     private double BAR_REMAIN;
@@ -23,6 +24,14 @@ public class JLTMaterialBean implements Serializable {
     private String BAR_WHCODE;
     private String location;
 
+    public long getPOS() {
+        return POS;
+    }
+
+    public void setPOS(long POS) {
+        this.POS = POS;
+    }
+
     public String getBAR_PRODCODE() {
         return BAR_PRODCODE;
     }

+ 18 - 0
app/src/main/java/com/uas/jlt_storage/bean/JLTPickMaterialBean.java

@@ -25,6 +25,8 @@ public class JLTPickMaterialBean {
     private String PR_CODE;
     private String PD_WHCODE;
     private int NOHBZ;//是否可以换包 0:可换包 1:不可换包
+    private long CU_PRINT_LIMITEDDATE;
+    private String PR_PKG;//封装形式
 
     public long getRN() {
         return RN;
@@ -113,4 +115,20 @@ public class JLTPickMaterialBean {
     public void setNOHBZ(int NOHBZ) {
         this.NOHBZ = NOHBZ;
     }
+
+    public long getCU_PRINT_LIMITEDDATE() {
+        return CU_PRINT_LIMITEDDATE;
+    }
+
+    public void setCU_PRINT_LIMITEDDATE(long CU_PRINT_LIMITEDDATE) {
+        this.CU_PRINT_LIMITEDDATE = CU_PRINT_LIMITEDDATE;
+    }
+
+    public String getPR_PKG() {
+        return PR_PKG;
+    }
+
+    public void setPR_PKG(String PR_PKG) {
+        this.PR_PKG = PR_PKG;
+    }
 }

+ 18 - 0
app/src/main/java/com/uas/jlt_storage/bean/JLTStorageModelBean.java

@@ -1,10 +1,20 @@
 package com.uas.jlt_storage.bean;
 
 public class JLTStorageModelBean {
+    private long RN;
     private String mModel;
     private String mQuantity;
     private String mBox;
     private String mProdcode;
+    private String mLocation;
+
+    public long getRN() {
+        return RN;
+    }
+
+    public void setRN(long RN) {
+        this.RN = RN;
+    }
 
     public String getModel() {
         return mModel;
@@ -37,4 +47,12 @@ public class JLTStorageModelBean {
     public void setProdcode(String prodcode) {
         mProdcode = prodcode;
     }
+
+    public String getLocation() {
+        return mLocation;
+    }
+
+    public void setLocation(String location) {
+        mLocation = location;
+    }
 }

+ 9 - 0
app/src/main/java/com/uas/jlt_storage/bean/WhcodeBean.java

@@ -3,6 +3,7 @@ package com.uas.jlt_storage.bean;
 public class WhcodeBean {
     private String mWhCode;
     private String mWhDes;
+    private String mPrcode;
 
     public String getWhCode() {
         return mWhCode;
@@ -19,4 +20,12 @@ public class WhcodeBean {
     public void setWhDes(String whDes) {
         mWhDes = whDes;
     }
+
+    public String getPrcode() {
+        return mPrcode;
+    }
+
+    public void setPrcode(String prcode) {
+        mPrcode = prcode;
+    }
 }

+ 64 - 1
app/src/main/java/com/uas/jlt_storage/fragment/JLTPickMaterialOutBoxFragment.java

@@ -7,12 +7,17 @@ import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.View;
+import android.view.WindowManager;
 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.data.column.ArrayColumn;
+import com.bin.david.form.data.format.IFormat;
+import com.bin.david.form.data.table.TableData;
 import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
 import com.uas.jlt_storage.adapter.JLTPickMaterialBoxAdapter;
@@ -39,12 +44,18 @@ import java.util.List;
  * Desc: 吉利通 出库捡料箱号首页
  */
 public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPickMaterialOutScanFragment.OnCollectFinishListener {
-    private TextView mModelTextView, mOrderTextView, mRemainTextView, mMpqTextView, mTotalTextView, mTitleTextView, mHbTextView;
+    private TextView mModelTextView, mOrderTextView, mRemainTextView, mMpqTextView, mTotalTextView, mTitleTextView, mHbTextView, mEnclosureTextView;
     private ClearableEditText mBoxEditText;
     private RecyclerView mRecyclerView;
     private JLTPickMaterialBean mPickMaterialBean;
     private JLTPickMaterialBoxAdapter mMaterialBoxAdapter;
     private List<JLTBoxBean> mBoxBeans;
+    private SmartTable mSmartTable;
+    private TableData<JLTBoxBean> mTableData;
+    private ArrayColumn<String> mLocationColumn, mBoxColumn;
+    private ArrayColumn<Double> mQtyColumn, mPanColumn;
+    private ArrayColumn<Long> mPosColumn;
+    private long mLimitDays;
 
     @Override
     protected int getLayout() {
@@ -63,6 +74,7 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
         mTitleTextView = root.findViewById(R.id.jlt_pick_material_out_box_title_tv);
         mHbTextView = root.findViewById(R.id.jlt_pick_material_out_box_hb_tv);
         mBoxEditText = root.findViewById(R.id.jlt_pick_material_out_box_box_et);
+        mEnclosureTextView = root.findViewById(R.id.jlt_pick_material_out_box_enclosure_tv);
         mBoxEditText.requestFocus();
         mRecyclerView = root.findViewById(R.id.jlt_pick_material_out_box_box_rv);
         mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
@@ -70,6 +82,39 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
         mBoxBeans = new ArrayList<>();
         mMaterialBoxAdapter = new JLTPickMaterialBoxAdapter(mBoxBeans);
         mRecyclerView.setAdapter(mMaterialBoxAdapter);
+
+        mSmartTable = root.findViewById(R.id.jlt_pick_material_out_box_box_st);
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(8)
+                .setColumnTitleVerticalPadding(8)
+                .setHorizontalPadding(10)
+                .setSequenceHorizontalPadding(10)
+                .setColumnTitleHorizontalPadding(10);
+
+        mPosColumn = new ArrayColumn<Long>("序号", "POS");
+        mPosColumn.setFixed(true);
+        mLocationColumn = new ArrayColumn<String>("仓位", "LOCATION");
+        mBoxColumn = new ArrayColumn<String>("箱号", "BOXCODE");
+        mQtyColumn = new ArrayColumn<Double>("QTY", "QTY", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
+        mPanColumn = new ArrayColumn<Double>("盘", "TRAYNO", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
     }
 
     @Override
@@ -111,6 +156,11 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
 
     @Override
     protected void initDatas() {
+        Bundle arguments = getArguments();
+        if (arguments != null) {
+            mLimitDays = arguments.getLong("limitDays");
+        }
+
         String materialCache = SharedPreUtil.getString(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_CACHE, "");
         int materialOrder = SharedPreUtil.getInt(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_ORDER, 0);
 
@@ -125,6 +175,7 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
 
             mModelTextView.setText(mPickMaterialBean.getPR_ORISPECCODE());
             mOrderTextView.setText(mPickMaterialBean.getDETNO() + "");
+            mEnclosureTextView.setText(mPickMaterialBean.getPR_PKG());
             double pd_restqty = mPickMaterialBean.getPD_RESTQTY();
             double pd_zxbzs = mPickMaterialBean.getPD_ZXBZS();
             mRemainTextView.setText(CommonUtil.doubleFormat(pd_restqty));
@@ -163,6 +214,7 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
                 .addParam("whcode", mPickMaterialBean.getPD_WHCODE())
                 .addParam("mpq", CommonUtil.doubleFormat(mPickMaterialBean.getPD_ZXBZS()))
                 .addParam("prcode", mPickMaterialBean.getPR_CODE())
+                .addParam("nohbz", mPickMaterialBean.getNOHBZ() + "")
                 .build(), new HttpCallback() {
             @Override
             public void onSuccess(int flag, Object o) throws Exception {
@@ -184,10 +236,12 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
                                 if (listObject != null) {
                                     JLTBoxBean boxBean = new JLTBoxBean();
 
+                                    boxBean.setPOS(i + 1);
                                     boxBean.setBOXCODE(FastjsonUtil.getText(listObject, "BOXCODE"));
                                     boxBean.setLOCATION(FastjsonUtil.getText(listObject, "LOCATION"));
                                     boxBean.setQTY(FastjsonUtil.getDouble(listObject, "QTY"));
                                     boxBean.setTRAYNO(FastjsonUtil.getDouble(listObject, "TRAYNO"));
+                                    boxBean.setCU_PRINT_LIMITEDDATE(mLimitDays);
 
                                     mBoxBeans.add(boxBean);
                                 }
@@ -195,6 +249,10 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
                         }
                     }
                     mMaterialBoxAdapter.notifyDataSetChanged();
+
+                    mTableData = new TableData<JLTBoxBean>("箱号列表", mBoxBeans, mPosColumn, mLocationColumn,
+                            mBoxColumn, mQtyColumn, mPanColumn);
+                    mSmartTable.setTableData(mTableData);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -204,6 +262,9 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
             public void onFail(int flag, String failStr) throws Exception {
                 progressDialog.dismiss();
                 mMaterialBoxAdapter.notifyDataSetChanged();
+                mTableData = new TableData<JLTBoxBean>("箱号列表", mBoxBeans, mPosColumn, mLocationColumn,
+                        mBoxColumn, mQtyColumn, mPanColumn);
+                mSmartTable.setTableData(mTableData);
                 CommonUtil.toastNoRepeat(mActivity, failStr);
             }
         });
@@ -237,6 +298,8 @@ public class JLTPickMaterialOutBoxFragment extends BaseFragment implements JLTPi
                             mPickMaterialBean.setPR_CODE(FastjsonUtil.getText(listObject, "PR_CODE"));
                             mPickMaterialBean.setPD_WHCODE(FastjsonUtil.getText(listObject, "PD_WHCODE"));
                             mPickMaterialBean.setNOHBZ(FastjsonUtil.getInt(listObject, "NOHBZ"));
+                            mPickMaterialBean.setCU_PRINT_LIMITEDDATE(FastjsonUtil.getLong(listObject, "CU_PRINT_LIMITEDDATE"));
+                            mPickMaterialBean.setPR_PKG(FastjsonUtil.getText(listObject, "PR_PKG"));
 
                             float restqtyCache = SharedPreUtil.getFloat(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_QUANTITY, -1);
                             if (restqtyCache > 0) {

+ 110 - 4
app/src/main/java/com/uas/jlt_storage/fragment/JLTPickMaterialOutFragment.java

@@ -1,6 +1,7 @@
 package com.uas.jlt_storage.fragment;
 
 import android.content.Context;
+import android.os.Bundle;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Editable;
@@ -8,6 +9,7 @@ import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.view.KeyEvent;
 import android.view.View;
+import android.view.WindowManager;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.AdapterView;
 import android.widget.AutoCompleteTextView;
@@ -20,11 +22,18 @@ 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.data.column.ArrayColumn;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.format.IFormat;
+import com.bin.david.form.data.table.TableData;
+import com.bin.david.form.listener.OnColumnItemClickListener;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
 import com.uas.jlt_storage.adapter.JLTPickMaterialOutAdapter;
 import com.uas.jlt_storage.bean.IOCOutMakeMaterialFuzzySearch;
+import com.uas.jlt_storage.bean.JLTMaterialBean;
 import com.uas.jlt_storage.bean.JLTPickMaterialBean;
 import com.uas.jlt_storage.global.GloableParams;
 import com.uas.jlt_storage.listener.MyEditorActionListener;
@@ -47,7 +56,7 @@ import java.util.List;
  * Created by RaoMeng on 2019/2/25
  * Desc: 吉利通 出库捡料首页
  */
-public class JLTPickMaterialOutFragment extends BaseFragment {
+public class JLTPickMaterialOutFragment extends BaseFragment implements OnColumnItemClickListener<Double> {
     private AutoCompleteTextView mNumEditText;
     private ImageView mClearImageView;
     private RadioGroup mTypeRadioGroup;
@@ -59,6 +68,11 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
     private String mType = "byOutDetno";
     private JLTPickMaterialOutAdapter mMaterialOutAdapter;
     private List<JLTPickMaterialBean> mPickMaterialBeans;
+    private SmartTable mSmartTable;
+    private TableData<JLTPickMaterialBean> mTableData;
+    private ArrayColumn<String> mModelColumn, mBrandColumn, mEnclosureColumn;
+    private ArrayColumn<Double> mMpqColumn, mQtyColumn, mRemainColumn;
+    private ArrayColumn<Long> mPosColumn;
 
     @Override
     protected int getLayout() {
@@ -86,6 +100,47 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
         mInputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
         mNumEditText.requestFocus();
         mNumEditText.setThreshold(1);
+
+        mSmartTable = root.findViewById(R.id.jlt_pick_material_out_st);
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(8)
+                .setColumnTitleVerticalPadding(8)
+                .setHorizontalPadding(10)
+                .setSequenceHorizontalPadding(10)
+                .setColumnTitleHorizontalPadding(10);
+
+        mPosColumn = new ArrayColumn<Long>("序号", "RN");
+        mPosColumn.setFixed(true);
+        mModelColumn = new ArrayColumn<String>("型号", "PR_ORISPECCODE");
+        mQtyColumn = new ArrayColumn<Double>("QTY", "PD_OUTQTY", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
+        mRemainColumn = new ArrayColumn<Double>("剩余数量", "PD_RESTQTY", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
+        mMpqColumn = new ArrayColumn<Double>("MPQ", "PD_ZXBZS", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
+        mBrandColumn = new ArrayColumn<String>("品牌", "PR_BRAND");
+        mEnclosureColumn = new ArrayColumn<String>("封装形式", "PR_PKG");
     }
 
     @Override
@@ -165,12 +220,49 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
         mMaterialOutAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
             @Override
             public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
-                SharedPreUtil.saveInt(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_ORDER, (int) (mPickMaterialBeans.get(position).getRN() - 1));
-                FragmentUtils.switchFragment(JLTPickMaterialOutFragment.this, new JLTPickMaterialOutBoxFragment());
+                jumpToBox(position);
+            }
+        });
+
+        mPosColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<Long>() {
+            @Override
+            public void onClick(Column<Long> column, String value, Long aLong, int position) {
+                jumpToBox(position);
+            }
+        });
+        mQtyColumn.setOnColumnItemClickListener(this);
+        mRemainColumn.setOnColumnItemClickListener(this);
+        mMpqColumn.setOnColumnItemClickListener(this);
+
+        mModelColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<String>() {
+            @Override
+            public void onClick(Column<String> column, String value, String s, int position) {
+                jumpToBox(position);
+            }
+        });
+        mBrandColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<String>() {
+            @Override
+            public void onClick(Column<String> column, String value, String s, int position) {
+                jumpToBox(position);
+            }
+        });
+        mEnclosureColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<String>() {
+            @Override
+            public void onClick(Column<String> column, String value, String s, int position) {
+                jumpToBox(position);
             }
         });
     }
 
+    private void jumpToBox(int position) {
+        SharedPreUtil.saveInt(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_ORDER, (int) (mPickMaterialBeans.get(position).getRN() - 1));
+        JLTPickMaterialOutBoxFragment pickMaterialOutBoxFragment = new JLTPickMaterialOutBoxFragment();
+        Bundle bundle = new Bundle();
+        bundle.putLong("limitDays", mPickMaterialBeans.get(position).getCU_PRINT_LIMITEDDATE());
+        pickMaterialOutBoxFragment.setArguments(bundle);
+        FragmentUtils.switchFragment(JLTPickMaterialOutFragment.this, pickMaterialOutBoxFragment);
+    }
+
     private void getOutData() {
         String inOutNoString = SharedPreUtil.getString(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_NUM, "");
         if (TextUtils.isEmpty(inOutNoString)) {
@@ -178,7 +270,6 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
         }
 
         progressDialog.show();
-        mPickMaterialBeans.clear();
         VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
                 .url(GloableParams.ADDRESS_JLT_OUTSTOCK_GETOUTDATA)
                 .method(Request.Method.GET)
@@ -190,6 +281,7 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
             public void onSuccess(int flag, Object o) throws Exception {
 //                reset();
                 try {
+                    mPickMaterialBeans.clear();
                     progressDialog.dismiss();
                     String result = o.toString();
                     SharedPreUtil.saveString(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_CACHE, result);
@@ -212,6 +304,8 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
                                     pickMaterialBean.setPR_CODE(FastjsonUtil.getText(listObject, "PR_CODE"));
                                     pickMaterialBean.setPD_WHCODE(FastjsonUtil.getText(listObject, "PD_WHCODE"));
                                     pickMaterialBean.setNOHBZ(FastjsonUtil.getInt(listObject, "NOHBZ"));
+                                    pickMaterialBean.setCU_PRINT_LIMITEDDATE(FastjsonUtil.getLong(listObject, "CU_PRINT_LIMITEDDATE"));
+                                    pickMaterialBean.setPR_PKG(FastjsonUtil.getText(listObject, "PR_PKG"));
 
                                     double pd_restqty = FastjsonUtil.getDouble(listObject, "PD_RESTQTY");
                                     pickMaterialBean.setPD_RESTQTY(pd_restqty);
@@ -226,6 +320,9 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
                         if (mPickMaterialBeans.size() == 0) {
                             CommonUtil.toastNoRepeat(mActivity, "该出库单已经完成捡料");
                         }
+                        mTableData = new TableData<JLTPickMaterialBean>("型号列表", mPickMaterialBeans,
+                                mPosColumn, mModelColumn, mQtyColumn, mRemainColumn, mMpqColumn, mBrandColumn, mEnclosureColumn);
+                        mSmartTable.setTableData(mTableData);
                     }
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -234,9 +331,13 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
 
             @Override
             public void onFail(int flag, String failStr) throws Exception {
+                mPickMaterialBeans.clear();
                 mMaterialOutAdapter.notifyDataSetChanged();
                 CommonUtil.toastNoRepeat(mActivity, failStr);
                 reset();
+                mTableData = new TableData<JLTPickMaterialBean>("型号列表", mPickMaterialBeans,
+                        mPosColumn, mModelColumn, mQtyColumn, mRemainColumn, mMpqColumn, mBrandColumn, mEnclosureColumn);
+                mSmartTable.setTableData(mTableData);
             }
         });
     }
@@ -298,6 +399,11 @@ public class JLTPickMaterialOutFragment extends BaseFragment {
         }
     }
 
+    @Override
+    public void onClick(Column<Double> column, String value, Double aDouble, int position) {
+        jumpToBox(position);
+    }
+
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         return false;

+ 202 - 30
app/src/main/java/com/uas/jlt_storage/fragment/JLTPickMaterialOutScanFragment.java

@@ -1,9 +1,13 @@
 package com.uas.jlt_storage.fragment;
 
 import android.app.Activity;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
+import android.text.format.DateUtils;
 import android.view.KeyEvent;
 import android.view.View;
 import android.widget.Button;
@@ -18,12 +22,14 @@ import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
 import com.uas.jlt_storage.bean.JLTBoxBean;
 import com.uas.jlt_storage.bean.JLTPickMaterialBean;
+import com.uas.jlt_storage.bean.WhcodeBean;
 import com.uas.jlt_storage.global.GloableParams;
 import com.uas.jlt_storage.listener.MyEditorActionListener;
 import com.uas.jlt_storage.tools.SharedPreUtil;
 import com.uas.jlt_storage.util.CameraUtil;
 import com.uas.jlt_storage.util.CommonUtil;
 import com.uas.jlt_storage.util.Constants;
+import com.uas.jlt_storage.util.DateFormatUtil;
 import com.uas.jlt_storage.util.FastjsonUtil;
 import com.uas.jlt_storage.util.HttpCallback;
 import com.uas.jlt_storage.util.HttpParams;
@@ -32,6 +38,9 @@ import com.uas.jlt_storage.view.ClearableEditText;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
 import com.uuzuche.lib_zxing.activity.CodeUtils;
 
+import java.util.ArrayList;
+import java.util.List;
+
 
 /**
  * Created by RaoMeng on 2019/2/25
@@ -39,9 +48,10 @@ import com.uuzuche.lib_zxing.activity.CodeUtils;
  */
 public class JLTPickMaterialOutScanFragment extends BaseFragment implements View.OnClickListener {
     private static final int SCAN_BARCODE_CODE = 101;
-    private ClearableEditText mLotEditText, mQuantityEditText, mCycleEditText, mMultipleEditText;
-    private TextView mModelTextView, mOrderTextView, mRemainTextView, mMpqTextView, mTotalTextView, mBoxTextView, mHbTextView;
-    private ImageView mEditImageView, mScanImageView;
+    private static final int SCAN_ENCLOSURE_CODE = 102;
+    private ClearableEditText mLotEditText, mQuantityEditText, mCycleEditText, mMultipleEditText, mEnclosureEditText;
+    private TextView mModelTextView, mOrderTextView, mRemainTextView, mMpqTextView, mTotalTextView, mBoxTextView, mHbTextView, mEnclosureTextView;
+    private ImageView mEditImageView, mScanImageView, mEnclosureImageView;
     private ClearableEditText mBarcodeEditText;
     private Button mSaveButton, mNextButton;
     private JLTPickMaterialBean mPickMaterialBean;
@@ -49,6 +59,8 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
     private String mPiid, mLotno, mDatecode, mBarcode;
     private double mQty;
     private OnCollectFinishListener mOnCollectFinishListener;
+    private String mDatecodebyparse;
+    private List<WhcodeBean> mEnclosureList;
 
     public void setOnCollectFinishListener(OnCollectFinishListener onCollectFinishListener) {
         mOnCollectFinishListener = onCollectFinishListener;
@@ -79,8 +91,13 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
         mSaveButton = root.findViewById(R.id.jlt_pick_material_out_scan_save_btn);
         mNextButton = root.findViewById(R.id.jlt_pick_material_out_scan_next_btn);
         mHbTextView = root.findViewById(R.id.jlt_pick_material_out_scan_hb_tv);
+        mEnclosureEditText = root.findViewById(R.id.jlt_pick_material_out_scan_enclosure_et);
+        mEnclosureImageView = root.findViewById(R.id.jlt_pick_material_out_scan_enclosure_iv);
+        mEnclosureTextView = root.findViewById(R.id.jlt_pick_material_out_scan_enclosure_tv);
 
         mBarcodeEditText.requestFocus();
+
+        mEnclosureList = new ArrayList<>();
     }
 
     @Override
@@ -89,6 +106,7 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
         mSaveButton.setOnClickListener(this);
         mEditImageView.setOnClickListener(this);
         mScanImageView.setOnClickListener(this);
+        mEnclosureImageView.setOnClickListener(this);
 
         CommonUtil.setEditorActionListener(mBarcodeEditText, new MyEditorActionListener() {
             @Override
@@ -96,6 +114,13 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
                 barcodeParse(text);
             }
         });
+
+        CommonUtil.setEditorActionListener(mEnclosureEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                enclosureParse();
+            }
+        });
     }
 
     @Override
@@ -121,6 +146,7 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
 
             mModelTextView.setText(mPickMaterialBean.getPR_ORISPECCODE());
             mOrderTextView.setText(mPickMaterialBean.getDETNO() + "");
+            mEnclosureTextView.setText(mPickMaterialBean.getPR_PKG());
             double pd_restqty = mPickMaterialBean.getPD_RESTQTY();
             double pd_zxbzs = mPickMaterialBean.getPD_ZXBZS();
             mRemainTextView.setText(CommonUtil.doubleFormat(pd_restqty));
@@ -134,6 +160,66 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
         }
     }
 
+    private void enclosureParse() {
+        String enclosure = mEnclosureEditText.getText().toString().trim();
+
+        if (TextUtils.isEmpty(enclosure)) {
+            return;
+        }
+        progressDialog.show();
+
+        VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_JLT_OUTSTOCK_PKGPARSE)
+                .method(Request.Method.POST)
+                .flag(0)
+                .tag(TAG + "enclosureparse")
+                .addParam("pkgStr", enclosure)
+                .addParam("brand", mPickMaterialBean.getPR_BRAND())
+                .addParam("prodcode", mPickMaterialBean.getPR_CODE())
+                .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);
+                    if (resultObject != null) {
+                        String enclosure = FastjsonUtil.getText(resultObject, "data");
+                        mEnclosureEditText.setText(enclosure);
+
+                        String Multiple = mMultipleEditText.getText().toString().trim();
+                        int mulInt = 1;
+                        try {
+                            mulInt = Integer.parseInt(Multiple);
+                            if ((mQty * mulInt) == mPickMaterialBean.getPD_RESTQTY() && !TextUtils.isEmpty(enclosure)) {
+                                confirmOut(false);
+                            }
+                        } catch (Exception e) {
+                            return;
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                mEnclosureEditText.setText("");
+                new Handler().post(new Runnable() {
+                    @Override
+                    public void run() {
+                        mEnclosureEditText.requestFocus();
+                    }
+                });
+            }
+        });
+    }
+
     private void barcodeParse(String text) {
         if (TextUtils.isEmpty(text)) {
             return;
@@ -142,6 +228,7 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
         if (mPickMaterialBean == null) {
             return;
         }
+        mEnclosureList.clear();
 
         progressDialog.show();
         mBarcode = text;
@@ -165,6 +252,7 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
                         mLotno = FastjsonUtil.getText(dataObject, "LOTNO");
                         mDatecode = FastjsonUtil.getText(dataObject, "DATECODE");
                         mQty = FastjsonUtil.getDouble(dataObject, "QTY");
+                        mDatecodebyparse = FastjsonUtil.getText(dataObject, "DATECODEBYPARSE");
 
                         mLotEditText.setText(mLotno);
                         mQuantityEditText.setText(CommonUtil.doubleFormat(mQty));
@@ -174,9 +262,11 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
                         int mulInt = 1;
                         try {
                             mulInt = Integer.parseInt(Multiple);
-
-                            if ((mQty * mulInt) == mPickMaterialBean.getPD_RESTQTY()) {
+                            String enclosure = mEnclosureEditText.getText().toString().trim();
+                            if ((mQty * mulInt) == mPickMaterialBean.getPD_RESTQTY() && !TextUtils.isEmpty(enclosure)) {
                                 confirmOut(false);
+                            } else {
+                                mEnclosureEditText.requestFocus();
                             }
                         } catch (Exception e) {
                             return;
@@ -225,6 +315,8 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
                             mPickMaterialBean.setPR_CODE(FastjsonUtil.getText(listObject, "PR_CODE"));
                             mPickMaterialBean.setPD_WHCODE(FastjsonUtil.getText(listObject, "PD_WHCODE"));
                             mPickMaterialBean.setNOHBZ(FastjsonUtil.getInt(listObject, "NOHBZ"));
+                            mPickMaterialBean.setCU_PRINT_LIMITEDDATE(FastjsonUtil.getLong(listObject, "CU_PRINT_LIMITEDDATE"));
+                            mPickMaterialBean.setPR_PKG(FastjsonUtil.getText(listObject, "PR_PKG"));
 
                             float restqtyCache = SharedPreUtil.getFloat(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_QUANTITY, -1);
                             if (restqtyCache > 0) {
@@ -257,6 +349,17 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
                     CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
                 }
                 break;
+            case R.id.jlt_pick_material_out_scan_enclosure_iv:
+                if (CameraUtil.hasCamera()) {
+                    if (root.findFocus() != null) {
+                        Intent intent = new Intent();
+                        intent.setClass(mActivity, CaptureActivity.class);
+                        startActivityForResult(intent, SCAN_ENCLOSURE_CODE);
+                    }
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
+                }
+                break;
             case R.id.jlt_pick_material_out_scan_save_btn:
                 confirmOut(false);
                 break;
@@ -294,6 +397,57 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
             }
         }
 
+        String enclosure = mEnclosureEditText.getText().toString().trim();
+        if (TextUtils.isEmpty(enclosure)) {
+            CommonUtil.toastNoRepeat(mActivity, "请采集封装形式");
+            mEnclosureEditText.requestFocus();
+            return;
+        }
+
+        long limitDays = mBoxBean.getCU_PRINT_LIMITEDDATE();
+        int daysInterval = DateFormatUtil.getDaysInterval(mDatecodebyparse, DateFormatUtil.long2Str("yyyyMMdd")
+                , DateFormatUtil.getFormat("yyyyMMdd"));
+
+        if (daysInterval > limitDays) {
+            int finalMulInt = mulInt;
+            new AlertDialog.Builder(mActivity)
+                    .setTitle("提示")
+                    .setMessage("捡料条码 生产日期(" + mDatecodebyparse
+                            + ")+ 有效天数(" + limitDays
+                            + ")>当天,是否确认捡料?")
+                    .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int which) {
+                            confirmRequest(exist, finalMulInt, zxbzs, enclosure);
+                        }
+                    })
+                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
+                        @Override
+                        public void onClick(DialogInterface dialog, int which) {
+                            resetState();
+                        }
+                    }).create().show();
+        } else {
+            confirmRequest(exist, mulInt, zxbzs, enclosure);
+        }
+    }
+
+    private void resetState() {
+        mBarcodeEditText.setText("");
+        mLotEditText.setText("");
+        mQuantityEditText.setText("");
+        mCycleEditText.setText("");
+        mEnclosureEditText.setText("");
+
+        new Handler().post(new Runnable() {
+            @Override
+            public void run() {
+                mBarcodeEditText.requestFocus();
+            }
+        });
+    }
+
+    private void confirmRequest(boolean exist, int mulInt, double zxbzs, String enclosure) {
         progressDialog.show();
         VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
                 .url(GloableParams.ADDRESS_JLT_OUTSTOCK_CONFIRMOUT)
@@ -307,44 +461,54 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
                 .addParam("data", mBarcode)
                 .addParam("PD_ZXBZS", CommonUtil.doubleFormat(zxbzs))
                 .addParam("nohbz", mPickMaterialBean.getNOHBZ() + "")
+                .addParam("pkg", enclosure)
                 .build(), new HttpCallback() {
             @Override
             public void onSuccess(int flag, Object o) throws Exception {
                 progressDialog.dismiss();
                 try {
-                    CommonUtil.toastNoRepeat(mActivity, "采集成功");
-
                     String result = o.toString();
                     JSONObject resultObject = JSON.parseObject(result);
                     JSONObject dataObject = resultObject.getJSONObject("data");
                     if (dataObject != null) {
-                        double restqty = FastjsonUtil.getDouble(dataObject, "RESTQTY");
-                        mPickMaterialBean.setPD_RESTQTY(restqty);
-                        SharedPreUtil.saveFloat(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_QUANTITY, (float) restqty);
-                        mRemainTextView.setText(CommonUtil.doubleFormat(restqty));
-                        double pd_zxbzs = zxbzs;
-                        try {
-                            double pan = Math.ceil(restqty / pd_zxbzs);
-                            mTotalTextView.setText(CommonUtil.doubleFormat(pan));
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                        if (restqty <= 0) {
-                            int materialOrder = SharedPreUtil.getInt(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_ORDER, 0);
-                            materialOrder++;
-                            SharedPreUtil.saveInt(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_ORDER, materialOrder);
-
-                            getActivity().getSupportFragmentManager().popBackStackImmediate();
+                        boolean checkpkg = FastjsonUtil.getBoolean(dataObject, "CHECKPKG");
+                        if (!checkpkg) {
+                            CommonUtil.toastNoRepeat(mActivity, "封装形式校验不通过,请重新采集");
+                            mEnclosureEditText.setText("");
+                            new Handler().post(new Runnable() {
+                                @Override
+                                public void run() {
+                                    mEnclosureEditText.requestFocus();
+                                }
+                            });
                         } else {
-                            if (exist) {
-                                getActivity().getSupportFragmentManager().popBackStack();
+                            CommonUtil.toastNoRepeat(mActivity, "采集成功");
+                            double restqty = FastjsonUtil.getDouble(dataObject, "RESTQTY");
+                            mPickMaterialBean.setPD_RESTQTY(restqty);
+                            SharedPreUtil.saveFloat(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_QUANTITY, (float) restqty);
+                            mRemainTextView.setText(CommonUtil.doubleFormat(restqty));
+                            double pd_zxbzs = zxbzs;
+                            try {
+                                double pan = Math.ceil(restqty / pd_zxbzs);
+                                mTotalTextView.setText(CommonUtil.doubleFormat(pan));
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                            if (restqty <= 0) {
+                                int materialOrder = SharedPreUtil.getInt(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_ORDER, 0);
+                                materialOrder++;
+                                SharedPreUtil.saveInt(mActivity, Constants.FLAG.JLT_PICK_MATERIAL_ORDER, materialOrder);
+
+                                getActivity().getSupportFragmentManager().popBackStackImmediate();
                             } else {
-                                mBarcodeEditText.setText("");
-                                mLotEditText.setText("");
-                                mQuantityEditText.setText("");
-                                mCycleEditText.setText("");
+                                if (exist) {
+                                    getActivity().getSupportFragmentManager().popBackStack();
+                                } else {
+                                    resetState();
+                                }
                             }
                         }
+
                     }
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -373,6 +537,14 @@ public class JLTPickMaterialOutScanFragment extends BaseFragment implements View
                 mBarcodeEditText.setSelection(result.length());
             }
         }
+
+        if (requestCode == SCAN_ENCLOSURE_CODE && data != null) {
+            if (data.getExtras() != null) {
+                String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
+                mEnclosureEditText.setText(result);
+                mEnclosureEditText.setSelection(result.length());
+            }
+        }
     }
 
     @Override

+ 1 - 0
app/src/main/java/com/uas/jlt_storage/fragment/JLTRevokeBoxFragment.java

@@ -113,6 +113,7 @@ public class JLTRevokeBoxFragment extends BaseFragment {
                 progressDialog.dismiss();
                 mJLTRevokeBoxAdapter.notifyDataSetChanged();
                 mResultTextView.setText("撤销箱号:" + outBox + "成功");
+                mBoxEditText.setText("");
             }
 
             @Override

+ 51 - 40
app/src/main/java/com/uas/jlt_storage/fragment/JLTStockInquiryLocationFragment.java

@@ -7,6 +7,7 @@ import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.View;
+import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.TextView;
 
@@ -14,6 +15,10 @@ 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.data.column.ArrayColumn;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.table.TableData;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
@@ -22,6 +27,7 @@ import com.uas.jlt_storage.adapter.JLTStockInquiryLocationAdapter;
 import com.uas.jlt_storage.adapter.SecondaryListAdapter;
 import com.uas.jlt_storage.bean.CommonMenuBean;
 import com.uas.jlt_storage.bean.JLTLocationBean;
+import com.uas.jlt_storage.bean.JLTPickMaterialBean;
 import com.uas.jlt_storage.bean.JLTStorageModelBean;
 import com.uas.jlt_storage.global.GloableParams;
 import com.uas.jlt_storage.tools.SharedPreUtil;
@@ -46,8 +52,11 @@ public class JLTStockInquiryLocationFragment extends BaseFragment {
     private ClearableEditText mWhcodeEditText, mLocationEditText;
     private Button mConfirmButton;
     private TextView mModelTextView, mQuantityTextView, mBoxTextView;
-    private RecyclerView mRecyclerView;
-    private JLTStockInquiryLocationAdapter mInquiryLocationAdapter;
+    private List<JLTStorageModelBean> mStorageModelBeans;
+    private SmartTable mSmartTable;
+    private Column<Long> mPosColumn;
+    private Column<String> mLocationColumn, mModelColumn, mQuantityColumn, mBoxColumn;
+    private TableData<JLTStorageModelBean> mTableData;
 
     @Override
     protected int getLayout() {
@@ -65,11 +74,28 @@ public class JLTStockInquiryLocationFragment extends BaseFragment {
         mModelTextView = root.findViewById(R.id.jlt_stock_inquiry_location_model_tv);
         mQuantityTextView = root.findViewById(R.id.jlt_stock_inquiry_location_quantity_tv);
         mBoxTextView = root.findViewById(R.id.jlt_stock_inquiry_location_box_tv);
-        mRecyclerView = root.findViewById(R.id.jlt_stock_inquiry_location_rv);
-        mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
-        mRecyclerView.addItemDecoration(new RecyclerItemDecoration(2));
 
-        mInquiryLocationAdapter = new JLTStockInquiryLocationAdapter(mActivity);
+        mStorageModelBeans = new ArrayList<>();
+        mSmartTable = root.findViewById(R.id.jlt_stock_inquiry_location_st);
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(8)
+                .setColumnTitleVerticalPadding(8)
+                .setHorizontalPadding(10)
+                .setSequenceHorizontalPadding(10)
+                .setColumnTitleHorizontalPadding(10);
+
+        mPosColumn = new Column<Long>("序号", "RN");
+        mPosColumn.setFixed(true);
+        mLocationColumn = new Column<String>("仓位", "mLocation");
+        mModelColumn = new Column<String>("型号", "mModel");
+        mQuantityColumn = new Column<String>("数量", "mQuantity");
+        mBoxColumn = new Column<String>("箱号", "mBox");
     }
 
     @Override
@@ -100,7 +126,7 @@ public class JLTStockInquiryLocationFragment extends BaseFragment {
         }
 
         progressDialog.show();
-
+        mStorageModelBeans.clear();
         VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
                 .url(GloableParams.ADDRESS_JLT_BARONHANDQUERY_SEARCHBYLOCATION)
                 .method(Request.Method.GET)
@@ -129,44 +155,25 @@ public class JLTStockInquiryLocationFragment extends BaseFragment {
                     mBoxTextView.setText(CommonUtil.doubleFormat(boxQuantity));
 
                     JSONArray storageArray = dataObject.getJSONArray("DETAIL");
-
-                    List<SecondaryListAdapter.SecondaryListBean<JLTLocationBean, JLTStorageModelBean>>
-                            mSecondaryListBeen = new ArrayList<>();
                     if (storageArray != null && storageArray.size() > 0) {
                         for (int i = 0; i < storageArray.size(); i++) {
-                            JSONObject storageObject = storageArray.getJSONObject(i);
-                            if (storageObject != null) {
-                                String location = FastjsonUtil.getText(storageObject, "LOCATION");
-                                double qty = FastjsonUtil.getDouble(storageObject, "QTY");
-
-                                JLTLocationBean locationBean = new JLTLocationBean();
-                                locationBean.setLocation(location);
-                                locationBean.setQty(qty);
-
-                                JSONArray modelArray = storageObject.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, "MPN"));
-                                            jltStorageModelBean.setBox(FastjsonUtil.getText(modelObject, "BOXCODE"));
-                                            jltStorageModelBean.setQuantity(FastjsonUtil.getText(modelObject, "QTY"));
-
-                                            jltStorageModelBeans.add(jltStorageModelBean);
-                                        }
-                                    }
-                                }
-                                SecondaryListAdapter.SecondaryListBean<JLTLocationBean, JLTStorageModelBean> secondaryListBean
-                                        = new SecondaryListAdapter.SecondaryListBean<>(locationBean, jltStorageModelBeans);
-
-                                mSecondaryListBeen.add(secondaryListBean);
+                            JSONObject modelObject = storageArray.getJSONObject(i);
+                            if (modelObject != null) {
+                                JLTStorageModelBean jltStorageModelBean = new JLTStorageModelBean();
+                                jltStorageModelBean.setRN(i + 1);
+                                jltStorageModelBean.setModel(FastjsonUtil.getText(modelObject, "MPN"));
+                                jltStorageModelBean.setBox(FastjsonUtil.getText(modelObject, "BOXCODE"));
+                                jltStorageModelBean.setQuantity(FastjsonUtil.getText(modelObject, "QTY"));
+                                jltStorageModelBean.setLocation(FastjsonUtil.getText(modelObject, "BAR_LOCATION"));
+
+                                mStorageModelBeans.add(jltStorageModelBean);
                             }
                         }
                     }
-                    mInquiryLocationAdapter.setDatas(mSecondaryListBeen);
-                    mRecyclerView.setAdapter(mInquiryLocationAdapter);
+
+                    mTableData = new TableData<JLTStorageModelBean>("库存列表", mStorageModelBeans,
+                            mPosColumn, mLocationColumn, mModelColumn, mQuantityColumn, mBoxColumn);
+                    mSmartTable.setTableData(mTableData);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -177,6 +184,10 @@ public class JLTStockInquiryLocationFragment extends BaseFragment {
                 progressDialog.dismiss();
 
                 CommonUtil.toastNoRepeat(mActivity, failStr);
+
+                mTableData = new TableData<JLTStorageModelBean>("库存列表", mStorageModelBeans,
+                        mPosColumn, mLocationColumn, mModelColumn, mQuantityColumn, mBoxColumn);
+                mSmartTable.setTableData(mTableData);
             }
         });
     }

+ 48 - 38
app/src/main/java/com/uas/jlt_storage/fragment/JLTStockInquiryModelFragment.java

@@ -5,6 +5,7 @@ import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.View;
+import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.TextView;
 
@@ -12,6 +13,9 @@ 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.data.column.Column;
+import com.bin.david.form.data.table.TableData;
 import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
 import com.uas.jlt_storage.adapter.JLTStockInquiryModelAdapter;
@@ -40,8 +44,11 @@ public class JLTStockInquiryModelFragment extends BaseFragment {
     private ClearableEditText mModelEditText, mWhcodeEditText, mLocationEditText;
     private Button mConfirmButton;
     private TextView mWhcodeTextView, mLocationTextView, mQuantityTextView, mBoxTextView;
-    private RecyclerView mRecyclerView;
-    private JLTStockInquiryModelAdapter mInquiryModelAdapter;
+    private List<JLTStorageModelBean> mStorageModelBeans;
+    private SmartTable mSmartTable;
+    private Column<Long> mPosColumn;
+    private Column<String> mLocationColumn, mQuantityColumn, mWhcodeColumn;
+    private TableData<JLTStorageModelBean> mTableData;
 
     @Override
     protected int getLayout() {
@@ -61,11 +68,27 @@ public class JLTStockInquiryModelFragment extends BaseFragment {
         mLocationTextView = root.findViewById(R.id.jlt_stock_inquiry_model_location_tv);
         mQuantityTextView = root.findViewById(R.id.jlt_stock_inquiry_model_quantity_tv);
         mBoxTextView = root.findViewById(R.id.jlt_stock_inquiry_model_box_tv);
-        mRecyclerView = root.findViewById(R.id.jlt_stock_inquiry_model_rv);
-        mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
-        mRecyclerView.addItemDecoration(new RecyclerItemDecoration(2));
 
-        mInquiryModelAdapter = new JLTStockInquiryModelAdapter(mActivity);
+        mStorageModelBeans = new ArrayList<>();
+        mSmartTable = root.findViewById(R.id.jlt_stock_inquiry_model_st);
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(8)
+                .setColumnTitleVerticalPadding(8)
+                .setHorizontalPadding(10)
+                .setSequenceHorizontalPadding(10)
+                .setColumnTitleHorizontalPadding(10);
+
+        mPosColumn = new Column<Long>("序号", "RN");
+        mPosColumn.setFixed(true);
+        mWhcodeColumn = new Column<String>("仓库", "mModel");
+        mLocationColumn = new Column<String>("仓位/箱号", "mBox");
+        mQuantityColumn = new Column<String>("数量", "mQuantity");
     }
 
     @Override
@@ -103,7 +126,7 @@ public class JLTStockInquiryModelFragment extends BaseFragment {
         }
 
         progressDialog.show();
-
+        mStorageModelBeans.clear();
         VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
                 .url(GloableParams.ADDRESS_JLT_BARONHANDQUERY_SEARCHBYMPN)
                 .method(Request.Method.GET)
@@ -136,42 +159,25 @@ public class JLTStockInquiryModelFragment extends BaseFragment {
 
                     JSONArray storageArray = dataObject.getJSONArray("DETAIL");
 
-                    List<SecondaryListAdapter.SecondaryListBean<JLTLocationBean, JLTStorageModelBean>>
-                            mSecondaryListBeen = new ArrayList<>();
                     if (storageArray != null && storageArray.size() > 0) {
                         for (int i = 0; i < storageArray.size(); i++) {
-                            JSONObject storageObject = storageArray.getJSONObject(i);
-                            if (storageObject != null) {
-                                String whcode = FastjsonUtil.getText(storageObject, "WHCODE");
-                                double qty = FastjsonUtil.getDouble(storageObject, "QTY");
-
-                                JLTLocationBean locationBean = new JLTLocationBean();
-                                locationBean.setLocation(whcode);
-                                locationBean.setQty(qty);
-
-                                JSONArray modelArray = storageObject.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.setBox(FastjsonUtil.getText(modelObject, "LOCATION"));
-                                            jltStorageModelBean.setQuantity(FastjsonUtil.getText(modelObject, "QTY"));
-
-                                            jltStorageModelBeans.add(jltStorageModelBean);
-                                        }
-                                    }
-                                }
-                                SecondaryListAdapter.SecondaryListBean<JLTLocationBean, JLTStorageModelBean> secondaryListBean
-                                        = new SecondaryListAdapter.SecondaryListBean<>(locationBean, jltStorageModelBeans);
-
-                                mSecondaryListBeen.add(secondaryListBean);
+                            JSONObject modelObject = storageArray.getJSONObject(i);
+                            if (modelObject != null) {
+                                JLTStorageModelBean jltStorageModelBean = new JLTStorageModelBean();
+
+                                jltStorageModelBean.setRN(i + 1);
+                                jltStorageModelBean.setBox(FastjsonUtil.getText(modelObject, "LOCATION"));
+                                jltStorageModelBean.setModel(FastjsonUtil.getText(modelObject, "BAR_WHCODE"));
+                                jltStorageModelBean.setQuantity(FastjsonUtil.getText(modelObject, "QTY"));
+
+                                mStorageModelBeans.add(jltStorageModelBean);
                             }
                         }
                     }
-                    mInquiryModelAdapter.setDatas(mSecondaryListBeen);
-                    mRecyclerView.setAdapter(mInquiryModelAdapter);
+
+                    mTableData = new TableData<JLTStorageModelBean>("库存列表", mStorageModelBeans,
+                            mPosColumn, mWhcodeColumn, mLocationColumn, mQuantityColumn);
+                    mSmartTable.setTableData(mTableData);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -182,6 +188,10 @@ public class JLTStockInquiryModelFragment extends BaseFragment {
                 progressDialog.dismiss();
 
                 CommonUtil.toastNoRepeat(mActivity, failStr);
+
+                mTableData = new TableData<JLTStorageModelBean>("库存列表", mStorageModelBeans,
+                        mPosColumn, mWhcodeColumn, mLocationColumn, mQuantityColumn);
+                mSmartTable.setTableData(mTableData);
             }
         });
     }

+ 92 - 18
app/src/main/java/com/uas/jlt_storage/fragment/JLTStorageInBarcodeFragment.java

@@ -1,6 +1,7 @@
 package com.uas.jlt_storage.fragment;
 
 import android.app.Activity;
+import android.app.Dialog;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.drawable.BitmapDrawable;
@@ -27,13 +28,16 @@ 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.chad.library.adapter.base.BaseQuickAdapter;
 import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
 import com.uas.jlt_storage.adapter.JLTMpqSelectAdapter;
+import com.uas.jlt_storage.adapter.JLTSearchWhcodeAdapter;
 import com.uas.jlt_storage.bean.JLTBarcodeParseBean;
+import com.uas.jlt_storage.bean.WhcodeBean;
 import com.uas.jlt_storage.global.GloableParams;
 import com.uas.jlt_storage.listener.MyEditorActionListener;
 import com.uas.jlt_storage.util.CameraUtil;
@@ -65,18 +69,21 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
     private PopupWindow mMenuPopupWindow;
     private View mMenuView;
     private TextView mBoxTextView;
-    private ImageView mCalendarImageView, mScanImageView;
+    private ImageView mCalendarImageView, mScanImageView, mEnclosureFitlerIv;
     private ClearableEditText mDateEditText, mBarcodeEditText, mModelEditText, mQuantityEditText,
-            mMpqEditText, mLotEditText, mPanEditText, mPoEditText, mBrandEditText;
+            mMpqEditText, mLotEditText, mPanEditText, mPoEditText, mBrandEditText, mEnclosureEditText;
     private CheckBox mPoCheckBox;
     private String mBoxNum, mPiid, mPiClass, mRealBoxNum;
     private JLTBarcodeParseBean mBarcodeParseBean;
     private JLTMpqSelectAdapter mMpqSelectAdapter;
     private List<Double> mMpqList;
     private CustomPopWindow mMpqPopWindow;
-    private RecyclerView mMpqRecyclerView;
+    private RecyclerView mMpqRecyclerView, mEnclosureRecyclerView;
     private View mMpqView;
+    private Dialog mEnclosureDialog;
     private OnFinishListener mOnFinishListener;
+    private List<WhcodeBean> mEnclosureList;
+    private JLTSearchWhcodeAdapter mSearchEnclosureAdapter;
 
     public void setOnFinishListener(OnFinishListener onFinishListener) {
         mOnFinishListener = onFinishListener;
@@ -111,6 +118,8 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         mNextButton = root.findViewById(R.id.jlt_storage_in_barcode_next_btn);
         mPoCheckBox = root.findViewById(R.id.jlt_storage_in_barcode_po_cb);
         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);
 
         mBarcodeParseBean = new JLTBarcodeParseBean();
         mBarcodeParseBean.setCHECKPO("Y");
@@ -124,6 +133,14 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         mMpqSelectAdapter = new JLTMpqSelectAdapter(mMpqList);
         mMpqRecyclerView.setAdapter(mMpqSelectAdapter);
 
+        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();
     }
 
     @Override
@@ -134,6 +151,8 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         mCloseButton.setOnClickListener(this);
         mSaveButton.setOnClickListener(this);
         mNextButton.setOnClickListener(this);
+        mEnclosureEditText.setOnClickListener(this);
+        mEnclosureFitlerIv.setOnClickListener(this);
 
         mModelEditText.addTextChangedListener(new MyTextWatcher(mModelEditText));
         mQuantityEditText.addTextChangedListener(new MyTextWatcher(mQuantityEditText));
@@ -143,6 +162,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         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
@@ -166,7 +186,17 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
                 double mpq = mMpqList.get(position);
 
                 mMpqEditText.setText(CommonUtil.doubleFormat(mpq));
-                mPanEditText.setText(Math.ceil(qty / mpq) + "");
+                mPanEditText.setText(CommonUtil.doubleFormat(Math.ceil(qty / mpq)));
+            }
+        });
+
+        mSearchEnclosureAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
+                mBarcodeParseBean.setPRCODE(mEnclosureList.get(position).getPrcode());
+
+                mEnclosureEditText.setText(mEnclosureList.get(position).getWhCode());
+                mEnclosureDialog.dismiss();
             }
         });
     }
@@ -185,6 +215,8 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
     }
 
     private void barcodeParse() {
+        mEnclosureList.clear();
+        mEnclosureEditText.setText("");
         String barcode = mBarcodeEditText.getText().toString().trim();
         if (TextUtils.isEmpty(barcode)) {
             return;
@@ -225,6 +257,21 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
 
                         mRealBoxNum = FastjsonUtil.getText(dataObject, "OUTBOX");
 
+                        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();
+
                         String mpqStr = FastjsonUtil.getText(dataObject, "MPQ");
                         if (TextUtils.isEmpty(mpqStr)) {
                             mpqStr = "0";
@@ -250,7 +297,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
 
                                     if (mpqNums.size() == 1) {
                                         mMpqEditText.setText(CommonUtil.doubleFormat(mpqNums.get(0)));
-                                        mPanEditText.setText(Math.ceil(qty / mpqNums.get(0))+"");
+                                        mPanEditText.setText(CommonUtil.doubleFormat(Math.ceil(qty / mpqNums.get(0))));
                                     } else if (mpqNums.size() > 1) {
                                         mMpqList.clear();
 
@@ -270,7 +317,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
                                 mMpqEditText.setText(mpqStr);
                                 try {
                                     double mpq = Double.parseDouble(mpqStr);
-                                    mPanEditText.setText(Math.ceil(qty / mpq)+"");
+                                    mPanEditText.setText(CommonUtil.doubleFormat(Math.ceil(qty / mpq)));
                                 } catch (Exception e) {
                                     mPanEditText.setText(0);
                                     e.printStackTrace();
@@ -289,6 +336,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
 
                 mBarcodeEditText.setText("");
                 mBarcodeEditText.requestFocus();
+                mSearchEnclosureAdapter.notifyDataSetChanged();
                 CommonUtil.toastNoRepeat(mActivity, failStr);
             }
         });
@@ -326,6 +374,16 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
             case R.id.jlt_storage_in_barcode_next_btn:
                 saveBarcode(true);
                 break;
+            case R.id.jlt_storage_in_barcode_enclosure_et:
+            case R.id.jlt_storage_in_barcode_enclosure_filter_iv:
+                if (mEnclosureList.size() == 0) {
+//                    CommonUtil.toastNoRepeat(mActivity, "封装形式为空");
+                } else {
+                    mEnclosureDialog.show();
+                }
+                break;
+            default:
+                break;
         }
     }
 
@@ -343,6 +401,10 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
             CommonUtil.toastNoRepeat(mActivity, "当前采集的条码不属于当前箱号");
             return;
         }*/
+        if (mEnclosureList.size() > 0 && TextUtils.isEmpty(mBarcodeParseBean.getPR_PKG())) {
+            CommonUtil.toastNoRepeat(mActivity, "请选择封装形式");
+            return;
+        }
 
         progressDialog.show();
         String jsonString = JSON.toJSONString(mBarcodeParseBean);
@@ -392,16 +454,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
                             if (exist) {
                                 getActivity().getSupportFragmentManager().popBackStack();
                             } else {
-                                mBarcodeEditText.setText("");
-                                mModelEditText.setText("");
-                                mQuantityEditText.setText("");
-                                mMpqEditText.setText("");
-                                mDateEditText.setText("");
-                                mLotEditText.setText("");
-                                mPanEditText.setText("");
-                                mPoEditText.setText("");
-                                mBrandEditText.setText("");
-                                mBarcodeEditText.requestFocus();
+                                resetState();
                             }
                         }
                     }
@@ -419,6 +472,21 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         });
     }
 
+    private void resetState() {
+        mBarcodeEditText.setText("");
+        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) {
@@ -484,8 +552,11 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
             @Override
             public void onClick(View v) {
                 closeMenuPopupWindow();
-
-                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, new JLTRevokeBoxFragment());
+                JLTRevokeBoxFragment jltRevokeBoxFragment = new JLTRevokeBoxFragment();
+                Bundle bundle = new Bundle();
+                bundle.putString("pi_id", mPiid);
+                jltRevokeBoxFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(JLTStorageInBarcodeFragment.this, jltRevokeBoxFragment);
             }
         });
 
@@ -596,6 +667,9 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
                 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;
             }
         }
     }

+ 75 - 3
app/src/main/java/com/uas/jlt_storage/fragment/JLTStorageMaterialMoveDetailFragment.java

@@ -52,6 +52,7 @@ public class JLTStorageMaterialMoveDetailFragment extends BaseFragment {
     private JLTMaterialMoveDetailAdapter mMoveDetailAdapter;
     private List<JLTLocationBean> mLocationBeans;
     private boolean isShelves = true;
+    private boolean mIsSure;
 
     @Override
     protected int getLayout() {
@@ -87,6 +88,13 @@ public class JLTStorageMaterialMoveDetailFragment extends BaseFragment {
             }
         });
 
+        CommonUtil.setEditorActionListener(mBoxEditText, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                checkBox();
+            }
+        });
+
         mShelvesCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@@ -104,6 +112,26 @@ public class JLTStorageMaterialMoveDetailFragment extends BaseFragment {
                 confirmMove();
             }
         });
+
+        mLocationEditText.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) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                if (s.length() == 0) {
+                    mBoxEditText.setText("");
+                    mBoxEditText.setEnabled(false);
+                }
+            }
+        });
     }
 
     @Override
@@ -174,6 +202,8 @@ public class JLTStorageMaterialMoveDetailFragment extends BaseFragment {
                 progressDialog.dismiss();
 
                 CommonUtil.toastNoRepeat(mActivity, "在库物料移动成功");
+                mBoxEditText.setText("");
+                mLocationEditText.setText("");
                 analysisDetail(o);
             }
 
@@ -185,6 +215,38 @@ public class JLTStorageMaterialMoveDetailFragment extends BaseFragment {
         });
     }
 
+    private void checkBox() {
+        String location = mLocationEditText.getText().toString().trim();
+        String box = mBoxEditText.getText().toString().trim();
+
+        if (TextUtils.isEmpty(location) || TextUtils.isEmpty(box)) {
+            return;
+        }
+        progressDialog.show();
+        VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_JLT_UPSHELF_CHECKNEWBOXCODE)
+                .method(Request.Method.GET)
+                .tag(TAG + "checkbox")
+                .addParam("newLocation", location)
+                .addParam("oldLocation", mMaterialBean.getLocation())
+                .addParam("newBoxCode", box)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                mBoxEditText.setText("");
+                mBoxEditText.requestFocus();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
     private void checkLocation() {
         String location = mLocationEditText.getText().toString().trim();
         if (TextUtils.isEmpty(location)) {
@@ -220,6 +282,7 @@ public class JLTStorageMaterialMoveDetailFragment extends BaseFragment {
                     mShelvesCheckBox.setChecked(isShelves);
 
                     if (isShelves && !isSame) {
+                        mIsSure = false;
                         new AlertDialog.Builder(mActivity)
                                 .setTitle("提示")
                                 .setMessage("当前操作型号与货架中已有型号不一致,确认移动?")
@@ -230,12 +293,21 @@ public class JLTStorageMaterialMoveDetailFragment extends BaseFragment {
                                         mBoxEditText.setText("");
                                     }
                                 })
-                                .setPositiveButton("确定", null)
+                                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(DialogInterface dialog, int which) {
+                                        mIsSure = true;
+                                    }
+                                })
                                 .setOnDismissListener(new DialogInterface.OnDismissListener() {
                                     @Override
                                     public void onDismiss(DialogInterface dialog) {
-                                        mLocationEditText.setText("");
-                                        mBoxEditText.setText("");
+                                        if (!mIsSure) {
+                                            mLocationEditText.setText("");
+                                            mBoxEditText.setText("");
+
+                                            mIsSure = false;
+                                        }
                                     }
                                 }).create().show();
                     }

+ 97 - 6
app/src/main/java/com/uas/jlt_storage/fragment/JLTStorageMaterialMoveFragment.java

@@ -6,12 +6,21 @@ import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.View;
+import android.view.WindowManager;
 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.data.column.ArrayColumn;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.column.ColumnInfo;
+import com.bin.david.form.data.format.IFormat;
+import com.bin.david.form.data.table.TableData;
+import com.bin.david.form.listener.OnColumnClickListener;
+import com.bin.david.form.listener.OnColumnItemClickListener;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
@@ -37,12 +46,17 @@ import java.util.List;
  * Created by RaoMeng on 2019/2/26
  * Desc: 在库物料移动
  */
-public class JLTStorageMaterialMoveFragment extends BaseFragment {
+public class JLTStorageMaterialMoveFragment extends BaseFragment implements OnColumnItemClickListener<Double> {
+    private SmartTable mSmartTable;
     private ClearableEditText mBoxEditText;
     private TextView mConfirmTextView;
     private RecyclerView mRecyclerView;
     private JLTMaterialMoveAdapter mMaterialMoveAdapter;
     private List<JLTMaterialBean> mMaterialBeans;
+    private TableData<JLTMaterialBean> mTableData;
+    private ArrayColumn<String> mModelColumn, mBrandColumn;
+    private ArrayColumn<Double> mMpqColumn, mQtyColumn, mPanColumn;
+    private ArrayColumn<Long> mPosColumn;
 
     @Override
     protected int getLayout() {
@@ -63,6 +77,47 @@ public class JLTStorageMaterialMoveFragment extends BaseFragment {
         mMaterialBeans = new ArrayList<>();
         mMaterialMoveAdapter = new JLTMaterialMoveAdapter(mMaterialBeans);
         mRecyclerView.setAdapter(mMaterialMoveAdapter);
+
+        mSmartTable = root.findViewById(R.id.jlt_storage_material_move_st);
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(8)
+                .setColumnTitleVerticalPadding(8)
+                .setHorizontalPadding(10)
+                .setSequenceHorizontalPadding(10)
+                .setColumnTitleHorizontalPadding(10);
+
+        mPosColumn = new ArrayColumn<Long>("序号", "POS");
+        mPosColumn.setFixed(true);
+        mModelColumn = new ArrayColumn<String>("型号", "BAR_MPN");
+        mMpqColumn = new ArrayColumn<Double>("MPQ", "BAR_ZXBZS", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
+        mQtyColumn = new ArrayColumn<Double>("QTY", "BAR_REMAIN", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
+        mBrandColumn = new ArrayColumn<String>("品牌", "BAR_BRAND");
+        mPanColumn = new ArrayColumn<Double>("盘", "BAR_TRAYNO", false,
+                new IFormat<Double>() {
+                    @Override
+                    public String format(Double aDouble) {
+                        return CommonUtil.doubleFormat(aDouble);
+                    }
+                });
+
     }
 
     @Override
@@ -84,16 +139,42 @@ public class JLTStorageMaterialMoveFragment extends BaseFragment {
         mMaterialMoveAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
             @Override
             public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
-                JLTStorageMaterialMoveDetailFragment materialMoveDetailFragment = new JLTStorageMaterialMoveDetailFragment();
+                jumpToDetail(position);
+            }
+        });
 
-                Bundle bundle = new Bundle();
-                bundle.putSerializable("materialBean", mMaterialBeans.get(position));
-                materialMoveDetailFragment.setArguments(bundle);
-                FragmentUtils.switchFragment(JLTStorageMaterialMoveFragment.this, materialMoveDetailFragment);
+        mPosColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<Long>() {
+            @Override
+            public void onClick(Column<Long> column, String value, Long aLong, int position) {
+                jumpToDetail(position);
+            }
+        });
+        mMpqColumn.setOnColumnItemClickListener(this);
+        mQtyColumn.setOnColumnItemClickListener(this);
+        mPanColumn.setOnColumnItemClickListener(this);
+        mModelColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<String>() {
+            @Override
+            public void onClick(Column<String> column, String value, String s, int position) {
+                jumpToDetail(position);
+            }
+        });
+        mBrandColumn.setOnColumnItemClickListener(new OnColumnItemClickListener<String>() {
+            @Override
+            public void onClick(Column<String> column, String value, String s, int position) {
+                jumpToDetail(position);
             }
         });
     }
 
+    private void jumpToDetail(int position) {
+        JLTStorageMaterialMoveDetailFragment materialMoveDetailFragment = new JLTStorageMaterialMoveDetailFragment();
+
+        Bundle bundle = new Bundle();
+        bundle.putSerializable("materialBean", mMaterialBeans.get(position));
+        materialMoveDetailFragment.setArguments(bundle);
+        FragmentUtils.switchFragment(JLTStorageMaterialMoveFragment.this, materialMoveDetailFragment);
+    }
+
     @Override
     protected void initDatas() {
 
@@ -127,6 +208,7 @@ public class JLTStorageMaterialMoveFragment extends BaseFragment {
                             JSONObject dataObject = dataArray.getJSONObject(i);
                             if (dataObject != null) {
                                 JLTMaterialBean jltMaterialBean = new JLTMaterialBean();
+                                jltMaterialBean.setPOS(i + 1);
                                 jltMaterialBean.setBAR_PRODCODE(FastjsonUtil.getText(dataObject, "BAR_PRODCODE"));
                                 jltMaterialBean.setBAR_MPN(FastjsonUtil.getText(dataObject, "BAR_MPN"));
                                 jltMaterialBean.setBAR_REMAIN(FastjsonUtil.getDouble(dataObject, "BAR_REMAIN"));
@@ -141,6 +223,9 @@ public class JLTStorageMaterialMoveFragment extends BaseFragment {
                         }
                     }
 
+                    mTableData = new TableData<JLTMaterialBean>("型号列表", mMaterialBeans,
+                            mPosColumn, mModelColumn, mMpqColumn, mQtyColumn, mBrandColumn, mPanColumn);
+                    mSmartTable.setTableData(mTableData);
                     mMaterialMoveAdapter.notifyDataSetChanged();
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -156,6 +241,12 @@ public class JLTStorageMaterialMoveFragment extends BaseFragment {
         });
     }
 
+
+    @Override
+    public void onClick(Column<Double> column, String value, Double aDouble, int position) {
+        jumpToDetail(position);
+    }
+
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         return false;

+ 13 - 2
app/src/main/java/com/uas/jlt_storage/fragment/JLTUpperShelfBoxFragment.java

@@ -2,6 +2,7 @@ package com.uas.jlt_storage.fragment;
 
 import android.app.Dialog;
 import android.content.DialogInterface;
+import android.os.Handler;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -181,7 +182,12 @@ public class JLTUpperShelfBoxFragment extends BaseFragment implements View.OnCli
                 if (boxNum.equals(test)) {
                     CommonUtil.toastNoRepeat(mActivity, "该箱号已采集");
                     mBoxEditText.setText("");
-                    mBoxEditText.requestFocus();
+                    new Handler().post(new Runnable() {
+                        @Override
+                        public void run() {
+                            mBoxEditText.requestFocus();
+                        }
+                    });
                     return;
                 }
             }
@@ -191,7 +197,12 @@ public class JLTUpperShelfBoxFragment extends BaseFragment implements View.OnCli
         mBoxList.add(boxBean);
 
         mBoxEditText.setText("");
-        mBoxEditText.requestFocus();
+        new Handler().post(new Runnable() {
+            @Override
+            public void run() {
+                mBoxEditText.requestFocus();
+            }
+        });
         mUpperShelfBoxAdapter.notifyDataSetChanged();
     }
 

+ 17 - 14
app/src/main/java/com/uas/jlt_storage/fragment/JltStorageInFilterFragment.java

@@ -14,6 +14,7 @@ import android.view.KeyEvent;
 import android.view.View;
 import android.widget.Button;
 import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -23,7 +24,6 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.uas.jlt_storage.R;
 import com.uas.jlt_storage.activity.FunctionActivity;
 import com.uas.jlt_storage.adapter.JLTSearchWhcodeAdapter;
-import com.uas.jlt_storage.adapter.JltStorageInFilterAdapter;
 import com.uas.jlt_storage.bean.WhcodeBean;
 import com.uas.jlt_storage.global.GloableParams;
 import com.uas.jlt_storage.tools.SharedPreUtil;
@@ -36,7 +36,6 @@ import com.uas.jlt_storage.util.HttpParams;
 import com.uas.jlt_storage.util.VollyRequest;
 import com.uas.jlt_storage.view.ClearableEditText;
 import com.uas.jlt_storage.view.RecyclerItemDecoration;
-import com.uuzuche.lib_zxing.activity.CodeUtils;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -51,7 +50,8 @@ public class JltStorageInFilterFragment extends BaseFragment implements View.OnC
     private static final int REQUEST_START_DATE = 21;
     private static final int REQUEST_END_DATE = 22;
 
-    private ClearableEditText mSupplierEditText, mWhcodeEditText, mStartdateEditText, mEnddateEditText;
+    private ClearableEditText mSupplierEditText, mWhcodeEditText;
+    private TextView mStartdatTextView, mEnddateTextView;
     private ImageView mSupplierIv, mWhcodeIv, mStartIv, mEndIv;
     private Button mConfirmButton, mSearchButton;
     private Dialog mWhcodeDialog, mSupplierDialog;
@@ -72,8 +72,8 @@ public class JltStorageInFilterFragment extends BaseFragment implements View.OnC
 
         mSupplierEditText = root.findViewById(R.id.jlt_storage_in_filter_supplier_et);
         mWhcodeEditText = root.findViewById(R.id.jlt_storage_in_filter_whcode_et);
-        mStartdateEditText = root.findViewById(R.id.jlt_storage_in_filter_startdate_et);
-        mEnddateEditText = root.findViewById(R.id.jlt_storage_in_filter_enddate_et);
+        mStartdatTextView = root.findViewById(R.id.jlt_storage_in_filter_startdate_et);
+        mEnddateTextView = root.findViewById(R.id.jlt_storage_in_filter_enddate_et);
         mSupplierIv = root.findViewById(R.id.jlt_storage_in_filter_supplier_iv);
         mWhcodeIv = root.findViewById(R.id.jlt_storage_in_filter_whcode_iv);
         mStartIv = root.findViewById(R.id.jlt_storage_in_filter_startdate_iv);
@@ -104,7 +104,9 @@ public class JltStorageInFilterFragment extends BaseFragment implements View.OnC
     protected void initEvents() {
         mSupplierIv.setOnClickListener(this);
         mWhcodeIv.setOnClickListener(this);
+        mStartdatTextView.setOnClickListener(this);
         mStartIv.setOnClickListener(this);
+        mEnddateTextView.setOnClickListener(this);
         mEndIv.setOnClickListener(this);
         mConfirmButton.setOnClickListener(this);
         mSearchButton.setOnClickListener(this);
@@ -149,14 +151,15 @@ public class JltStorageInFilterFragment extends BaseFragment implements View.OnC
                 searchWhcode();
                 break;
             }
-            case R.id.jlt_storage_in_filter_startdate_iv: {
+            case R.id.jlt_storage_in_filter_startdate_iv:
+            case R.id.jlt_storage_in_filter_startdate_et: {
                 dateSelect(REQUEST_START_DATE);
                 break;
             }
-            case R.id.jlt_storage_in_filter_enddate_iv: {
+            case R.id.jlt_storage_in_filter_enddate_iv:
+            case R.id.jlt_storage_in_filter_enddate_et:
                 dateSelect(REQUEST_END_DATE);
                 break;
-            }
             case R.id.jlt_storage_in_filter_confirm_btn: {
                 if (mStartDate > 0 && mEndDate > 0 && mStartDate > mEndDate) {
                     CommonUtil.toastNoRepeat(mActivity, "开始日期不能大于结束日期");
@@ -165,8 +168,8 @@ public class JltStorageInFilterFragment extends BaseFragment implements View.OnC
                 JltStorageInFilterListFragment filterListFragment = new JltStorageInFilterListFragment();
                 String supplier = mSupplierEditText.getText().toString().trim();
                 String whcode = mWhcodeEditText.getText().toString().trim();
-                String startDate = mStartdateEditText.getText().toString().trim();
-                String endDate = mEnddateEditText.getText().toString().trim();
+                String startDate = mStartdatTextView.getText().toString().trim();
+                String endDate = mEnddateTextView.getText().toString().trim();
 
                 Bundle bundle = new Bundle();
                 bundle.putString("supplier", supplier);
@@ -293,18 +296,18 @@ public class JltStorageInFilterFragment extends BaseFragment implements View.OnC
             try {
                 Date date = (Date) data.getSerializableExtra("extra_date");
                 mStartDate = date.getTime();
-                mStartdateEditText.setText(DateFormat.format("yyyyMMdd", date));
+                mStartdatTextView.setText(DateFormat.format("yyyyMMdd", date));
             } catch (Exception e) {
-                mStartdateEditText.setText("");
+                mStartdatTextView.setText("");
             }
         }
         if (requestCode == REQUEST_END_DATE) {
             try {
                 Date date = (Date) data.getSerializableExtra("extra_date");
                 mEndDate = date.getTime();
-                mEnddateEditText.setText(DateFormat.format("yyyyMMdd", date));
+                mEnddateTextView.setText(DateFormat.format("yyyyMMdd", date));
             } catch (Exception e) {
-                mEnddateEditText.setText("");
+                mEnddateTextView.setText("");
             }
         }
     }

+ 4 - 3
app/src/main/java/com/uas/jlt_storage/fragment/JltStorageInFilterListFragment.java

@@ -284,9 +284,10 @@ public class JltStorageInFilterListFragment extends BaseFragment implements JLTS
     }
 
     private void rowClickEvent(final int i) {
-        String pi_inoutno = mStorageInBeans.get(i).getPI_INOUTNO();
-        String pi_id = mStorageInBeans.get(i).getPI_ID() + "";
-        String pi_class = mStorageInBeans.get(i).getPI_CLASS();
+        int pos = mStorageInFilterAdapter.getFilterList().get(i).getPOS();
+        String pi_inoutno = mStorageInBeans.get(pos).getPI_INOUTNO();
+        String pi_id = mStorageInBeans.get(pos).getPI_ID() + "";
+        String pi_class = mStorageInBeans.get(pos).getPI_CLASS();
         JLTStorageInBoxScanFragment jltStorageInBoxScanFragment = new JLTStorageInBoxScanFragment();
 
         Bundle bundle = new Bundle();

+ 8 - 0
app/src/main/java/com/uas/jlt_storage/global/GloableParams.java

@@ -214,6 +214,8 @@ public class GloableParams {
     public static String ADDRESS_JLT_UPSHELF_CONFIRMMOVE;
     public static String ADDRESS_JLT_RECEIVING_GETINDATALIST;
     public static String ADDRESS_JLT_RECEIVING_VENDORSEARCH;
+    public static String ADDRESS_JLT_UPSHELF_CHECKNEWBOXCODE;
+    public static String ADDRESS_JLT_OUTSTOCK_PKGPARSE;
 
 
     /**
@@ -245,6 +247,8 @@ public class GloableParams {
     private static final String ADDRESSTAIL_JLT_UPSHELF_WHSEARCH = "/api/pda/upshelf/whSearch.action";
     //仓库校验
     private static final String ADDRESSTAIL_JLT_UPSHELF_WHCHECK = "/api/pda/upshelf/whCheck.action";
+    //仓位+箱号校验
+    private static final String ADDRESSTAIL_JLT_UPSHELF_CHECKNEWBOXCODE = "/api/pda/upshelf/checkNewBoxCode.action";
     //确认按箱上架
     private static final String ADDRESSTAIL_JLT_UPSHELF_CONFIRM = "/api/pda/upshelf/confirm.action";
     //在库物料搜索
@@ -268,6 +272,8 @@ public class GloableParams {
     private static final String ADDRESSTAIL_JLT_OUTSTOCK_GETCANOUTBOX = "/api/pda/outstock/getCanOutBox.action";
     //捡料二维码解析
     private static final String ADDRESSTAIL_JLT_OUTSTOCK_BARCODEPARSE = "/api/pda/outstock/barcodeParse.action";
+    //验证封装形式
+    private static final String ADDRESSTAIL_JLT_OUTSTOCK_PKGPARSE = "/api/pda/outstock/pkgParse.action";
     //确认捡料
     private static final String ADDRESSTAIL_JLT_OUTSTOCK_CONFIRMOUT = "/api/pda/outstock/confirmOut.action";
 
@@ -931,5 +937,7 @@ public class GloableParams {
         GloableParams.ADDRESS_JLT_UPSHELF_CONFIRMMOVE = uriHead + GloableParams.ADDRESSTAIL_JLT_UPSHELF_CONFIRMMOVE;
         GloableParams.ADDRESS_JLT_RECEIVING_GETINDATALIST = uriHead + GloableParams.ADDRESSTAIL_JLT_RECEIVING_GETINDATALIST;
         GloableParams.ADDRESS_JLT_RECEIVING_VENDORSEARCH = uriHead + GloableParams.ADDRESSTAIL_JLT_RECEIVING_VENDORSEARCH;
+        GloableParams.ADDRESS_JLT_UPSHELF_CHECKNEWBOXCODE = uriHead + GloableParams.ADDRESSTAIL_JLT_UPSHELF_CHECKNEWBOXCODE;
+        GloableParams.ADDRESS_JLT_OUTSTOCK_PKGPARSE = uriHead + GloableParams.ADDRESSTAIL_JLT_OUTSTOCK_PKGPARSE;
     }
 }

+ 6 - 0
app/src/main/res/layout/fragment_jlt_pick_material_out.xml

@@ -67,5 +67,11 @@
     <android.support.v7.widget.RecyclerView
         android:id="@+id/jlt_pick_material_out_rv"
         android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:visibility="gone"/>
+
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/jlt_pick_material_out_st"
+        android:layout_width="match_parent"
         android:layout_height="match_parent" />
 </LinearLayout>

+ 32 - 6
app/src/main/res/layout/fragment_jlt_pick_material_out_box.xml

@@ -4,7 +4,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:padding="16dp">
+    android:padding="12dp">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -101,9 +101,9 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:paddingLeft="6dp"
-                android:visibility="gone"
                 android:text="(不可换包)"
-                android:textColor="@color/red" />
+                android:textColor="@color/red"
+                android:visibility="gone" />
         </LinearLayout>
 
         <LinearLayout
@@ -128,6 +128,26 @@
         </LinearLayout>
     </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/jlt_pick_material_out_box_enclosure_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingLeft="10dp"
+            android:textColor="#333333"
+            tools:text="2342353543" />
+    </LinearLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -148,14 +168,20 @@
         android:id="@+id/jlt_pick_material_out_box_title_tv"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginTop="6dp"
         android:gravity="center"
         android:padding="6dp"
-        android:layout_marginTop="6dp"
-        tools:text="@string/pick_material_title"
-        android:textColor="@color/red" />
+        android:textColor="@color/red"
+        tools:text="@string/pick_material_title" />
 
     <android.support.v7.widget.RecyclerView
         android:id="@+id/jlt_pick_material_out_box_box_rv"
         android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:visibility="gone" />
+
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/jlt_pick_material_out_box_box_st"
+        android:layout_width="match_parent"
         android:layout_height="match_parent" />
 </LinearLayout>

+ 194 - 122
app/src/main/res/layout/fragment_jlt_pick_material_out_scan.xml

@@ -5,7 +5,7 @@
     android:layout_height="match_parent"
     android:background="@color/white"
     android:orientation="vertical"
-    android:padding="16dp">
+    android:padding="12dp">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -29,7 +29,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="6dp">
+        android:layout_marginTop="4dp">
 
         <LinearLayout
             android:layout_width="0dp"
@@ -76,7 +76,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="6dp">
+        android:layout_marginTop="4dp">
 
         <LinearLayout
             android:layout_width="0dp"
@@ -101,10 +101,10 @@
                 android:id="@+id/jlt_pick_material_out_scan_hb_tv"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:paddingLeft="6dp"
-                android:visibility="gone"
+                android:paddingLeft="4dp"
                 android:text="(不可换包)"
-                android:textColor="@color/red" />
+                android:textColor="@color/red"
+                android:visibility="gone" />
         </LinearLayout>
 
         <LinearLayout
@@ -129,6 +129,26 @@
         </LinearLayout>
     </LinearLayout>
 
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="4dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="封装"
+            android:textColor="#333333" />
+
+        <TextView
+            android:id="@+id/jlt_pick_material_out_scan_enclosure_tv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingLeft="10dp"
+            android:textColor="#333333"
+            tools:text="2342353543" />
+    </LinearLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -163,7 +183,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="10dp"
+        android:layout_marginTop="6dp"
         android:background="@drawable/bg_line_edittext">
 
         <com.uas.jlt_storage.view.ClearableEditText
@@ -187,125 +207,177 @@
             android:src="@drawable/ic_edittext_scan" />
     </LinearLayout>
 
-    <LinearLayout
+    <ScrollView
         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:minWidth="60dp"
-            android:paddingLeft="16dp"
-            android:paddingRight="16dp"
-            android:text="Lot"
-            android:textColor="@color/body_text_1"
-            android:textSize="16sp" />
-
-        <com.uas.jlt_storage.view.ClearableEditText
-            android:id="@+id/jlt_pick_material_out_scan_lot_et"
-            style="@style/EditTextUnableStyle"
-            android:layout_width="0dp"
-            android:layout_weight="1" />
-    </LinearLayout>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="10dp">
+        android:layout_height="match_parent">
 
         <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:paddingLeft="16dp"
-                android:paddingRight="16dp"
-                android:text="数量"
-                android:textColor="@color/body_text_1"
-                android:textSize="16sp" />
-
-            <com.uas.jlt_storage.view.ClearableEditText
-                android:id="@+id/jlt_pick_material_out_scan_quantity_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:paddingLeft="16dp"
-                android:paddingRight="16dp"
-                android:text="周期"
-                android:textColor="@color/body_text_1"
-                android:textSize="16sp" />
-
-            <com.uas.jlt_storage.view.ClearableEditText
-                android:id="@+id/jlt_pick_material_out_scan_cycle_et"
-                style="@style/EditTextUnableStyle"
-                android:layout_width="0dp"
-                android:layout_weight="1" />
-        </LinearLayout>
-    </LinearLayout>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="10dp">
-
-        <TextView
-            style="@style/tl_tv_style"
+            android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:gravity="center"
-            android:minWidth="60dp"
-            android:paddingLeft="16dp"
-            android:paddingRight="16dp"
-            android:text="X"
-            android:textColor="@color/body_text_1"
-            android:textSize="16sp" />
-
-        <com.uas.jlt_storage.view.ClearableEditText
-            android:id="@+id/jlt_pick_material_out_scan_multiple_et"
-            style="@style/EditTextStyle"
-            android:layout_width="0dp"
-            android:layout_weight="1"
-            android:inputType="number"
-            android:text="1" />
-    </LinearLayout>
+            android:orientation="vertical">
 
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="10dp">
-
-        <Button
-            android:id="@+id/jlt_pick_material_out_scan_save_btn"
-            style="@style/ButtonStyle"
-            android:layout_width="0dp"
-            android:layout_margin="14dp"
-            android:layout_weight="1"
-            android:text="保存" />
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="6dp">
+
+                <TextView
+                    style="@style/tl_tv_style"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:minWidth="60dp"
+                    android:paddingLeft="16dp"
+                    android:paddingRight="16dp"
+                    android:text="Lot"
+                    android:textColor="@color/body_text_1"
+                    android:textSize="16sp" />
+
+                <com.uas.jlt_storage.view.ClearableEditText
+                    android:id="@+id/jlt_pick_material_out_scan_lot_et"
+                    style="@style/EditTextUnableStyle"
+                    android:layout_width="0dp"
+                    android:layout_weight="1" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="6dp">
+
+                <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:paddingLeft="16dp"
+                        android:paddingRight="16dp"
+                        android:text="数量"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.jlt_storage.view.ClearableEditText
+                        android:id="@+id/jlt_pick_material_out_scan_quantity_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:paddingLeft="16dp"
+                        android:paddingRight="16dp"
+                        android:text="周期"
+                        android:textColor="@color/body_text_1"
+                        android:textSize="16sp" />
+
+                    <com.uas.jlt_storage.view.ClearableEditText
+                        android:id="@+id/jlt_pick_material_out_scan_cycle_et"
+                        style="@style/EditTextUnableStyle"
+                        android:layout_width="0dp"
+                        android:layout_weight="1" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="6dp">
+
+                <TextView
+                    style="@style/tl_tv_style"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:minWidth="60dp"
+                    android:paddingLeft="16dp"
+                    android:paddingRight="16dp"
+                    android:text="X"
+                    android:textColor="@color/body_text_1"
+                    android:textSize="16sp" />
+
+                <com.uas.jlt_storage.view.ClearableEditText
+                    android:id="@+id/jlt_pick_material_out_scan_multiple_et"
+                    style="@style/EditTextStyle"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:inputType="number"
+                    android:text="1" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="6dp">
+
+                <TextView
+                    style="@style/tl_tv_style"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:minWidth="60dp"
+                    android:paddingLeft="16dp"
+                    android:paddingRight="16dp"
+                    android:text="封装"
+                    android:textColor="@color/body_text_1"
+                    android:textSize="16sp" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:background="@color/white">
+
+                    <com.uas.jlt_storage.view.ClearableEditText
+                        android:id="@+id/jlt_pick_material_out_scan_enclosure_et"
+                        style="@style/EditTextStyle"
+                        android:layout_width="287dp"
+                        android:layout_weight="1"
+                        android:hint="请采集封装形式" />
+
+                    <ImageView
+                        android:id="@+id/jlt_pick_material_out_scan_enclosure_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>
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp">
+
+                <Button
+                    android:id="@+id/jlt_pick_material_out_scan_save_btn"
+                    style="@style/ButtonStyle"
+                    android:layout_width="0dp"
+                    android:layout_margin="14dp"
+                    android:layout_weight="1"
+                    android:text="保存" />
+
+                <Button
+                    android:id="@+id/jlt_pick_material_out_scan_next_btn"
+                    style="@style/ButtonStyle"
+                    android:layout_width="0dp"
+                    android:layout_margin="14dp"
+                    android:layout_weight="1"
+                    android:text="保存并下一箱" />
+            </LinearLayout>
+        </LinearLayout>
+    </ScrollView>
 
-        <Button
-            android:id="@+id/jlt_pick_material_out_scan_next_btn"
-            style="@style/ButtonStyle"
-            android:layout_width="0dp"
-            android:layout_margin="14dp"
-            android:layout_weight="1"
-            android:text="保存并下一箱" />
-    </LinearLayout>
 </LinearLayout>

+ 4 - 5
app/src/main/res/layout/fragment_jlt_stock_inquiry_location.xml

@@ -4,12 +4,11 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:padding="16dp">
+    android:padding="12dp">
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="6dp"
         android:orientation="horizontal">
 
         <TextView
@@ -59,7 +58,7 @@
     <Button
         android:id="@+id/jlt_stock_inquiry_location_confirm_btn"
         style="@style/ButtonStyle"
-        android:layout_marginTop="16dp"
+        android:layout_marginTop="10dp"
         android:text="查询" />
 
     <LinearLayout
@@ -138,8 +137,8 @@
             tools:text="1232" />
     </LinearLayout>
 
-    <android.support.v7.widget.RecyclerView
-        android:id="@+id/jlt_stock_inquiry_location_rv"
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/jlt_stock_inquiry_location_st"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_marginTop="10dp" />

+ 4 - 5
app/src/main/res/layout/fragment_jlt_stock_inquiry_model.xml

@@ -4,12 +4,11 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:padding="16dp">
+    android:padding="12dp">
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="6dp"
         android:orientation="horizontal">
 
         <TextView
@@ -83,7 +82,7 @@
     <Button
         android:id="@+id/jlt_stock_inquiry_model_confirm_btn"
         style="@style/ButtonStyle"
-        android:layout_marginTop="16dp"
+        android:layout_marginTop="10dp"
         android:text="查询" />
 
 
@@ -173,8 +172,8 @@
             tools:text="1232" />
     </LinearLayout>
 
-    <android.support.v7.widget.RecyclerView
-        android:id="@+id/jlt_stock_inquiry_model_rv"
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/jlt_stock_inquiry_model_st"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_marginTop="10dp" />

+ 46 - 31
app/src/main/res/layout/fragment_jlt_storage_in_barcode.xml

@@ -67,15 +67,13 @@
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="6dp">
+                android:layout_marginTop="4dp">
 
                 <TextView
                     style="@style/tl_tv_style"
                     android:layout_height="match_parent"
                     android:gravity="center"
-                    android:minWidth="65dp"
-                    android:paddingLeft="16dp"
-                    android:paddingRight="16dp"
+                    android:minWidth="60dp"
                     android:text="型号"
                     android:textColor="@color/body_text_1"
                     android:textSize="16sp" />
@@ -90,7 +88,7 @@
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="6dp">
+                android:layout_marginTop="4dp">
 
                 <LinearLayout
                     android:layout_width="0dp"
@@ -101,9 +99,7 @@
                         style="@style/tl_tv_style"
                         android:layout_height="match_parent"
                         android:gravity="center"
-                        android:minWidth="65dp"
-                        android:paddingLeft="16dp"
-                        android:paddingRight="16dp"
+                        android:minWidth="60dp"
                         android:text="数量"
                         android:textColor="@color/body_text_1"
                         android:textSize="16sp" />
@@ -124,9 +120,7 @@
                         style="@style/tl_tv_style"
                         android:layout_height="match_parent"
                         android:gravity="center"
-                        android:minWidth="65dp"
-                        android:paddingLeft="16dp"
-                        android:paddingRight="16dp"
+                        android:minWidth="60dp"
                         android:text="MPQ"
                         android:textColor="@color/body_text_1"
                         android:textSize="16sp" />
@@ -143,16 +137,14 @@
                 android:id="@+id/material_in_collect_datecode_tr"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="6dp">
+                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="65dp"
-                    android:paddingLeft="16dp"
-                    android:paddingRight="16dp"
+                    android:minWidth="60dp"
                     android:text="日期"
                     android:textColor="@color/body_text_1"
                     android:textSize="16sp" />
@@ -191,7 +183,7 @@
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="6dp">
+                android:layout_marginTop="4dp">
 
                 <LinearLayout
                     android:layout_width="0dp"
@@ -202,9 +194,7 @@
                         style="@style/tl_tv_style"
                         android:layout_height="match_parent"
                         android:gravity="center"
-                        android:minWidth="65dp"
-                        android:paddingLeft="16dp"
-                        android:paddingRight="16dp"
+                        android:minWidth="60dp"
                         android:text="品牌"
                         android:textColor="@color/body_text_1"
                         android:textSize="16sp" />
@@ -225,9 +215,7 @@
                         style="@style/tl_tv_style"
                         android:layout_height="match_parent"
                         android:gravity="center"
-                        android:minWidth="65dp"
-                        android:paddingLeft="16dp"
-                        android:paddingRight="16dp"
+                        android:minWidth="60dp"
                         android:text="盘"
                         android:textColor="@color/body_text_1"
                         android:textSize="16sp" />
@@ -244,7 +232,7 @@
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="6dp">
+                android:layout_marginTop="4dp">
 
                 <CheckBox
                     android:id="@+id/jlt_storage_in_barcode_po_cb"
@@ -253,8 +241,7 @@
                     android:layout_marginLeft="6dp"
                     android:checked="true"
                     android:gravity="center"
-                    android:paddingLeft="6dp"
-                    android:paddingRight="16dp"
+                    android:paddingRight="10dp"
                     android:text="PO"
                     android:textColor="@color/body_text_1"
                     android:textSize="16sp" />
@@ -263,21 +250,20 @@
                     android:id="@+id/jlt_storage_in_barcode_po_et"
                     style="@style/EditTextStyle"
                     android:layout_width="0dp"
+                    android:hint="请采集PO号"
                     android:layout_weight="1" />
             </LinearLayout>
 
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="6dp">
+                android:layout_marginTop="4dp">
 
                 <TextView
                     style="@style/tl_tv_style"
                     android:layout_height="match_parent"
                     android:gravity="center"
-                    android:minWidth="65dp"
-                    android:paddingLeft="16dp"
-                    android:paddingRight="16dp"
+                    android:minWidth="60dp"
                     android:text="Lot"
                     android:textColor="@color/body_text_1"
                     android:textSize="16sp" />
@@ -289,6 +275,35 @@
                     android:layout_weight="1" />
             </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.jlt_storage.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>
+
         </LinearLayout>
     </ScrollView>
 
@@ -300,7 +315,7 @@
             android:id="@+id/jlt_storage_in_barcode_save_btn"
             style="@style/ButtonStyle"
             android:layout_width="0dp"
-            android:layout_margin="14dp"
+            android:layout_margin="12dp"
             android:layout_weight="1"
             android:text="保存" />
 
@@ -308,7 +323,7 @@
             android:id="@+id/jlt_storage_in_barcode_next_btn"
             style="@style/ButtonStyle"
             android:layout_width="0dp"
-            android:layout_margin="14dp"
+            android:layout_margin="12dp"
             android:layout_weight="1"
             android:text="保存并下一箱" />
     </LinearLayout>

+ 8 - 12
app/src/main/res/layout/fragment_jlt_storage_in_filter.xml

@@ -72,16 +72,14 @@
             android:layout_weight="1"
             android:background="@color/white">
 
-            <com.uas.jlt_storage.view.ClearableEditText
+            <TextView
                 android:id="@+id/jlt_storage_in_filter_startdate_et"
                 style="@style/EditTextStyle"
-                android:layout_width="236dp"
+                android:layout_width="0dp"
                 android:layout_weight="1"
-                android:enabled="false"
-                android:focusable="true"
-                android:focusableInTouchMode="true"
                 android:hint="开始日期"
-                android:longClickable="false"
+                android:paddingHorizontal="6dp"
+                android:singleLine="false"
                 android:textColor="@color/black"
                 tools:text="20190330" />
 
@@ -102,16 +100,14 @@
             android:layout_weight="1"
             android:background="@color/white">
 
-            <com.uas.jlt_storage.view.ClearableEditText
+            <TextView
                 android:id="@+id/jlt_storage_in_filter_enddate_et"
                 style="@style/EditTextStyle"
-                android:layout_width="236dp"
+                android:layout_width="0dp"
                 android:layout_weight="1"
-                android:enabled="false"
-                android:focusable="true"
-                android:focusableInTouchMode="true"
                 android:hint="结束日期"
-                android:longClickable="false"
+                android:paddingHorizontal="6dp"
+                android:singleLine="false"
                 android:textColor="@color/black" />
 
             <ImageView

+ 9 - 1
app/src/main/res/layout/fragment_jlt_storage_material_move.xml

@@ -37,5 +37,13 @@
         android:id="@+id/jlt_storage_material_move_rv"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginTop="12dp" />
+        android:layout_marginTop="12dp"
+        android:visibility="gone"/>
+
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/jlt_storage_material_move_st"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="12dp"
+        />
 </LinearLayout>

+ 26 - 44
app/src/main/res/layout/item_jlt_storage_in_filter.xml

@@ -5,79 +5,61 @@
     android:layout_height="wrap_content"
     android:background="@color/background_color_first"
     android:gravity="center_vertical"
-    android:orientation="horizontal"
-    android:padding="10dp">
+    android:paddingLeft="6dp"
+    android:orientation="horizontal">
 
     <CheckBox
         android:id="@+id/item_jlt_storage_in_filter_select_cb"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
-        android:layout_marginRight="10dp" />
+        android:paddingLeft="6dp" />
 
     <LinearLayout
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:orientation="vertical">
+        android:orientation="vertical"
+        android:paddingVertical="10dp">
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content">
 
             <TextView
-                android:layout_width="wrap_content"
+                android:id="@+id/item_jlt_storage_in_filter_num_tv"
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:text="单号:"
+                android:layout_weight="1"
                 android:textColor="#333333"
-                android:textSize="@dimen/textsize_16" />
+                android:textSize="15sp"
+                android:textStyle="bold"
+                tools:text="0927092234" />
 
             <TextView
-                android:id="@+id/item_jlt_storage_in_filter_num_tv"
-                android:layout_width="match_parent"
+                android:id="@+id/item_jlt_storage_in_filter_state_tv"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:textColor="#333333"
-                android:textSize="@dimen/textsize_16"
-                android:textStyle="bold"
-                tools:text="0927092234" />
+                android:textSize="@dimen/textsize_14"
+                tools:text="已提交" />
         </LinearLayout>
 
         <LinearLayout
             android:id="@+id/item_jlt_storage_in_filter_spread_ll"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:visibility="gone"
-            android:orientation="vertical">
+            android:orientation="vertical"
+            android:paddingTop="6dp"
+            android:visibility="gone">
 
-            <LinearLayout
-                android:layout_width="match_parent"
+            <TextView
+                android:id="@+id/item_jlt_storage_in_filter_type_tv"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="6dp"
-                android:orientation="horizontal">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="条码总数:" />
-
-                <TextView
-                    android:id="@+id/barcode_supple_print_item_inqty_tv"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    tools:text="150" />
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="条码个数:" />
-
-                <TextView
-                    android:id="@+id/barcode_supple_print_item_cn_tv"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    tools:text="3" />
-            </LinearLayout>
+                android:textColor="#333333"
+                android:layout_gravity="right"
+                android:textSize="@dimen/textsize_14"
+                tools:text="采购验收单" />
         </LinearLayout>
     </LinearLayout>
 
@@ -85,6 +67,6 @@
         android:id="@+id/item_jlt_storage_in_filter_spread_iv"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
-        android:paddingHorizontal="10dp"
+        android:paddingHorizontal="16dp"
         android:src="@drawable/ic_menu_retract" />
 </LinearLayout>

+ 5 - 3
build.gradle

@@ -40,7 +40,7 @@ task clean(type: Delete) {
 
 ext {
     android = [
-            minSdkVersion    : 14,
+            minSdkVersion    : 15,
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
@@ -58,7 +58,8 @@ ext {
             switchViewVersion                   : "1.0.2",
             smartRefreshLayoutVersion           : '1.0.5',
             BaseRecyclerViewAdapterHelperVersion: '2.9.30',
-            permissonVersion                    : '2.0.0-rc12'
+            permissonVersion                    : '2.0.0-rc12',
+            smartTableVersion                   : '2.2.0'
     ]
 
     deps = [
@@ -73,6 +74,7 @@ ext {
             smartRefreshHeader           : 'com.scwang.smartrefresh:SmartRefreshHeader:' + depsVersion.smartRefreshLayoutVersion,
             BaseRecyclerViewAdapterHelper: 'com.github.CymChad:BaseRecyclerViewAdapterHelper:' + depsVersion.BaseRecyclerViewAdapterHelperVersion,
             recyclerview                 : 'com.android.support:recyclerview-v7:' + depsVersion.appcompatV7Version,
-            permisson                    : 'com.yanzhenjie:permission:' + depsVersion.permissonVersion
+            permisson                    : 'com.yanzhenjie:permission:' + depsVersion.permissonVersion,
+            smartTable                   : 'com.github.huangyanbin:SmartTable:' + depsVersion.smartTableVersion
     ]
 }