Browse Source

增加批号仓位界面,入库扫描界面优化,增加条码明细界面

ChengJH 1 year ago
parent
commit
539d132d11
26 changed files with 1640 additions and 58 deletions
  1. 99 0
      app/src/main/java/com/uas/hy_electronic/adapter/ReportDetailAdapter.java
  2. 24 6
      app/src/main/java/com/uas/hy_electronic/adapter/StorageInCollectAdapter.java
  3. 106 0
      app/src/main/java/com/uas/hy_electronic/bean/ReportDetailBean.java
  4. 36 0
      app/src/main/java/com/uas/hy_electronic/bean/StockTaskMultipleBean.java
  5. 209 0
      app/src/main/java/com/uas/hy_electronic/fragment/BatchNumberDataListFragment.java
  6. 22 0
      app/src/main/java/com/uas/hy_electronic/fragment/IOCOutMakeMaterialOper.java
  7. 5 5
      app/src/main/java/com/uas/hy_electronic/fragment/IndexWareHouseContentFragment.java
  8. 27 28
      app/src/main/java/com/uas/hy_electronic/fragment/JLTStorageInBarcodeFragment.java
  9. 206 0
      app/src/main/java/com/uas/hy_electronic/fragment/MaterialDataListFragment.java
  10. 7 1
      app/src/main/java/com/uas/hy_electronic/fragment/MaterialInCollectFragment.java
  11. 187 0
      app/src/main/java/com/uas/hy_electronic/fragment/ReportDetailFragment.java
  12. 16 0
      app/src/main/java/com/uas/hy_electronic/fragment/StorageRechargeFragment.java
  13. 17 2
      app/src/main/java/com/uas/hy_electronic/global/GloableParams.java
  14. 1 1
      app/src/main/java/com/uas/hy_electronic/util/CommonUtil.java
  15. 281 0
      app/src/main/java/com/uas/hy_electronic/util/DateFormatUtils.java
  16. 1 1
      app/src/main/java/com/uas/hy_electronic/util/VolleyRequest.java
  17. 2 1
      app/src/main/res/layout/fragment_jlt_storage_in_barcode.xml
  18. 29 0
      app/src/main/res/layout/fragment_material_datalist.xml
  19. 2 2
      app/src/main/res/layout/fragment_material_in_collect.xml
  20. 21 0
      app/src/main/res/layout/fragment_report_detail.xml
  21. 135 0
      app/src/main/res/layout/item_new_list_stock_already_list.xml
  22. 166 0
      app/src/main/res/layout/item_report_detail.xml
  23. 29 9
      app/src/main/res/layout/pop_material_out_menu.xml
  24. 9 0
      app/src/main/res/layout/pop_storage_recharge_menu.xml
  25. 1 0
      app/src/main/res/values/color.xml
  26. 2 2
      build.gradle

+ 99 - 0
app/src/main/java/com/uas/hy_electronic/adapter/ReportDetailAdapter.java

@@ -0,0 +1,99 @@
+package com.uas.hy_electronic.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.uas.hy_electronic.R;
+import com.uas.hy_electronic.bean.ReportDetailBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class ReportDetailAdapter extends BaseAdapter {
+
+    private List<ReportDetailBean> objects = new ArrayList<ReportDetailBean>();
+
+    private Context context;
+    private LayoutInflater layoutInflater;
+
+    public ReportDetailAdapter(Context context, List<ReportDetailBean> objects) {
+        this.context = context;
+        this.layoutInflater = LayoutInflater.from(context);
+        this.objects = objects;
+    }
+
+    @Override
+    public int getCount() {
+        return objects.size();
+    }
+
+    @Override
+    public ReportDetailBean getItem(int position) {
+        return objects.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            convertView = layoutInflater.inflate(R.layout.item_report_detail, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        initializeViews((ReportDetailBean) getItem(position), (ViewHolder) convertView.getTag());
+        return convertView;
+    }
+
+    private void initializeViews(ReportDetailBean object, ViewHolder holder) {
+        if(!TextUtils.isEmpty(object.getBAN_BARCODE())){
+            holder.tv_pichi.setText(object.getBAN_BARCODE());
+        }
+        holder.tv_report_num.setText(object.getBAN_PRODCODE());
+        holder.tv_destory_num.setText(object.getBAN_ANCODE());
+        holder.tv_report_man.setText(object.getBAN_QTY());
+        if (object.getBAN_CUCHECK().equals("1")){
+            holder.tv_report_time.setText("已采集");
+            holder.tv_report_time.setTextColor(Color.parseColor("#666666"));
+        }else {
+            holder.tv_report_time.setText("未采集");
+            holder.tv_report_time.setTextColor(Color.BLUE);
+        }
+        holder.tv_pr_detail.setText(object.getPR_DETAIL());
+        holder.tv_pr_spec.setText(object.getPR_SPEC());
+    }
+
+    protected class ViewHolder {
+        private TextView tv_pichi;
+
+        private TextView tv_report_num;
+        private TextView tv_destory_num;
+        private TextView tv_report_man;
+        private TextView tv_report_time;
+        private TextView tv_pr_detail;
+        private TextView tv_pr_spec;
+
+
+        public ViewHolder(View view) {
+            tv_pichi = (TextView) view.findViewById(R.id.tv_pichi);
+            tv_report_num = (TextView) view.findViewById(R.id.tv_report_num);
+            tv_destory_num = (TextView) view.findViewById(R.id.tv_destory_num);
+            tv_report_man = (TextView) view.findViewById(R.id.tv_report_man);
+            tv_report_time = (TextView) view.findViewById(R.id.tv_report_time);
+            tv_pr_detail = (TextView) view.findViewById(R.id.tv_pr_detail);
+            tv_pr_spec = (TextView) view.findViewById(R.id.tv_pr_spec);
+
+        }
+    }
+    
+    
+}

+ 24 - 6
app/src/main/java/com/uas/hy_electronic/adapter/StorageInCollectAdapter.java

@@ -1,7 +1,7 @@
 package com.uas.hy_electronic.adapter;
 
+import android.graphics.Color;
 import android.support.annotation.Nullable;
-import android.text.TextUtils;
 import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
@@ -9,13 +9,14 @@ import com.chad.library.adapter.base.BaseViewHolder;
 import com.uas.hy_electronic.R;
 import com.uas.hy_electronic.bean.StockAlreadyItemBean;
 import com.uas.hy_electronic.util.CommonUtil;
+import com.uas.hy_electronic.util.StringUtil;
 
 import java.util.List;
 
 public class StorageInCollectAdapter extends BaseQuickAdapter<StockAlreadyItemBean, BaseViewHolder> {
 
     public StorageInCollectAdapter(@Nullable List<StockAlreadyItemBean> data) {
-        super(R.layout.item_list_stock_already_list, data);
+        super(R.layout.item_new_list_stock_already_list, data);
     }
 
     @Override
@@ -25,12 +26,29 @@ public class StorageInCollectAdapter extends BaseQuickAdapter<StockAlreadyItemBe
         helper.setText(R.id.stock_already_list_outqty, CommonUtil.doubleFormat(item.getBI_INQTY()));
         helper.setText(R.id.stock_already_list_prodcode, item.getBI_PRODCODE());
         helper.setText(R.id.stock_already_list_detail, item.getPR_DETAIL());
+        TextView tv_pdgget = helper.getView(R.id.tv_pdgget);
+
+        if (StringUtil.isEmpty(item.getBI_PDAGET()+"")){
+            tv_pdgget.setText("未采集");
+            tv_pdgget.setTextColor(Color.parseColor("#666666"));
+        }else {
+            if (item.getBI_PDAGET()==0){
+                tv_pdgget.setText("未采集");
+                tv_pdgget.setTextColor(Color.parseColor("#666666"));
+            }else {
+                tv_pdgget.setText("已采集");
+                tv_pdgget.setTextColor(Color.BLUE);
+
+            }
+
+        }
+
 //        helper.setText(R.id.stock_already_list_batchcode, item.getBI_BATCHCODE());
 //        helper.setText(R.id.stock_already_list_location_caption, "采集状态:");
-//        helper.setText(R.id.stock_already_list_location, item.getBI_PDAGET() == 0 ? "未采集" : "已采集");
+//        helper.setText(R.id.tv_pdgget, item.getBI_PDAGET() == 0 ? "未采集" : "已采集");
         //新增型号
-        if(!TextUtils.isEmpty(item.getPR_ORISPECCODE())){
-            tv_type_value.setText(item.getPR_ORISPECCODE());
-        }
+//        if(!TextUtils.isEmpty(item.getPR_ORISPECCODE())){
+            tv_type_value.setText(item.getPR_SPEC());
+//        }
     }
 }

+ 106 - 0
app/src/main/java/com/uas/hy_electronic/bean/ReportDetailBean.java

@@ -0,0 +1,106 @@
+package com.uas.hy_electronic.bean;
+
+import java.io.Serializable;
+
+public class ReportDetailBean implements Serializable {
+
+    private String BAN_ID;
+    private String BAN_BARCODE;
+    private String BAN_PRODCODE;
+    private String BAN_ANCODE;
+    private String BAN_ANID;
+    private String BAN_QTY;
+    private String BAN_CUCHECK;
+    private String PR_DETAIL;
+    private String PR_ID;
+    private String PR_SPEC;
+    private String RN;
+
+    public String getPR_SPEC() {
+        return PR_SPEC;
+    }
+
+    public void setPR_SPEC(String PR_SPEC) {
+        this.PR_SPEC = PR_SPEC;
+    }
+
+    public String getBAN_ID() {
+        return BAN_ID;
+    }
+
+    public void setBAN_ID(String BAN_ID) {
+        this.BAN_ID = BAN_ID;
+    }
+
+    public String getBAN_BARCODE() {
+        return BAN_BARCODE;
+    }
+
+    public void setBAN_BARCODE(String BAN_BARCODE) {
+        this.BAN_BARCODE = BAN_BARCODE;
+    }
+
+    public String getBAN_PRODCODE() {
+        return BAN_PRODCODE;
+    }
+
+    public void setBAN_PRODCODE(String BAN_PRODCODE) {
+        this.BAN_PRODCODE = BAN_PRODCODE;
+    }
+
+    public String getBAN_ANCODE() {
+        return BAN_ANCODE;
+    }
+
+    public void setBAN_ANCODE(String BAN_ANCODE) {
+        this.BAN_ANCODE = BAN_ANCODE;
+    }
+
+    public String getBAN_ANID() {
+        return BAN_ANID;
+    }
+
+    public void setBAN_ANID(String BAN_ANID) {
+        this.BAN_ANID = BAN_ANID;
+    }
+
+    public String getBAN_QTY() {
+        return BAN_QTY;
+    }
+
+    public void setBAN_QTY(String BAN_QTY) {
+        this.BAN_QTY = BAN_QTY;
+    }
+
+    public String getBAN_CUCHECK() {
+        return BAN_CUCHECK;
+    }
+
+    public void setBAN_CUCHECK(String BAN_CUCHECK) {
+        this.BAN_CUCHECK = BAN_CUCHECK;
+    }
+
+    public String getPR_DETAIL() {
+        return PR_DETAIL;
+    }
+
+    public void setPR_DETAIL(String PR_DETAIL) {
+        this.PR_DETAIL = PR_DETAIL;
+    }
+
+    public String getPR_ID() {
+        return PR_ID;
+    }
+
+    public void setPR_ID(String PR_ID) {
+        this.PR_ID = PR_ID;
+    }
+
+    public String getRN() {
+        return RN;
+    }
+
+    public void setRN(String RN) {
+        this.RN = RN;
+    }
+}

+ 36 - 0
app/src/main/java/com/uas/hy_electronic/bean/StockTaskMultipleBean.java

@@ -21,6 +21,10 @@ public class StockTaskMultipleBean {
      * NOS : [{"PI_INOUTNO":"MG12333","PD_OUTQTY":12,"PD_RESTQTY":12}]
      */
 
+    private String PD_WHCODE;
+    private String PD_WHNAME;
+    private String BA_LOCATION;
+    private String OUTQTY;
     private String PR_ORISPECCODE;
     private String PD_PRODCODE;
     private String PR_DETAIL;
@@ -37,6 +41,38 @@ public class StockTaskMultipleBean {
     private double PBQTY;
     private List<NOSBean> NOS;
 
+    public String getOUTQTY() {
+        return OUTQTY;
+    }
+
+    public void setOUTQTY(String OUTQTY) {
+        this.OUTQTY = OUTQTY;
+    }
+
+    public String getPD_WHCODE() {
+        return PD_WHCODE;
+    }
+
+    public void setPD_WHCODE(String PD_WHCODE) {
+        this.PD_WHCODE = PD_WHCODE;
+    }
+
+    public String getPD_WHNAME() {
+        return PD_WHNAME;
+    }
+
+    public void setPD_WHNAME(String PD_WHNAME) {
+        this.PD_WHNAME = PD_WHNAME;
+    }
+
+    public String getBA_LOCATION() {
+        return BA_LOCATION;
+    }
+
+    public void setBA_LOCATION(String BA_LOCATION) {
+        this.BA_LOCATION = BA_LOCATION;
+    }
+
     public double getINQTY() {
         return INQTY;
     }

+ 209 - 0
app/src/main/java/com/uas/hy_electronic/fragment/BatchNumberDataListFragment.java

@@ -0,0 +1,209 @@
+package com.uas.hy_electronic.fragment;
+
+import android.os.Build;
+import android.os.Bundle;
+import android.support.annotation.RequiresApi;
+import android.view.Gravity;
+import android.view.KeyEvent;
+import android.view.View;
+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.Column;
+import com.bin.david.form.data.table.TableData;
+import com.bin.david.form.listener.OnColumnItemClickListener;
+import com.uas.hy_electronic.R;
+import com.uas.hy_electronic.bean.StockTaskMultipleBean;
+import com.uas.hy_electronic.global.GloableParams;
+import com.uas.hy_electronic.tools.SharedPreUtil;
+import com.uas.hy_electronic.util.CommonUtil;
+import com.uas.hy_electronic.util.FastjsonUtil;
+import com.uas.hy_electronic.util.HttpCallback;
+import com.uas.hy_electronic.util.HttpParams;
+import com.uas.hy_electronic.util.StringUtil;
+import com.uas.hy_electronic.util.VolleyRequest;
+import com.uas.hy_electronic.view.TakePhotoPopWin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2024/4/17
+ * Desc: 批号仓位
+ */
+public class BatchNumberDataListFragment extends BaseFragment implements OnColumnItemClickListener<String> {
+    private SmartTable mSmartTable;
+    private Column<String> mPR_DETAILColumn,mOUTQTYColumn,mBA_LOCATIONColumn,mPD_BATCHCODEColumn,mPD_WHNAMEColumn,mProdcodeColumn,mPR_SPECColumn;
+    private TableData<StockTaskMultipleBean> mTableData;
+    private TextView mNumTextView;
+    private String mPiid, mWhcode, mInouno;
+    private List<StockTaskMultipleBean> mStockTaskMultipleBeans;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_material_datalist;
+    }
+
+    @Override
+    protected void initViews() {
+        setTitle("批号仓位");
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            mInouno = bundle.getString("pi_inoutno");
+            mWhcode = bundle.getString("pd_whcode");
+            mPiid = bundle.getString("pi_id");
+        }
+
+        mNumTextView = root.findViewById(R.id.stock_data_summary_num_tv);
+        mSmartTable = root.findViewById(R.id.stock_data_summary_st);
+
+        CommonUtil.getDefaultTable(mActivity, mSmartTable);
+
+        mPR_DETAILColumn = new Column<String>("物料名称", "PR_DETAIL");
+        mPR_DETAILColumn.setFixed(true);
+        mOUTQTYColumn = new Column<String>("领料数量", "OUTQTY");
+        mBA_LOCATIONColumn = new Column<String>("仓位", "BA_LOCATION");
+        mPD_BATCHCODEColumn = new Column<String>("批号", "PD_BATCHCODE");
+        mPD_WHNAMEColumn = new Column<String>("仓库名称", "PD_WHNAME");
+
+        mProdcodeColumn = new Column<String>("物料编号", "PD_PRODCODE");
+        mPR_SPECColumn = new Column<String>("物料规格", "PR_SPEC");
+
+
+
+
+
+
+
+
+
+
+
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+        mNumTextView.setText("单号:" + mInouno);
+
+        mStockTaskMultipleBeans = new ArrayList<>();
+        setTableData(mStockTaskMultipleBeans);
+
+        getDataList();
+//        mTypeColumn.setOnColumnItemClickListener(this);
+//        mProdcodeColumn.setOnColumnItemClickListener(this);
+//        mOutqtyColumn.setOnColumnItemClickListener(this);
+    }
+
+    private void setTableData(List<StockTaskMultipleBean> filterTableData) {
+        mTableData = new TableData<StockTaskMultipleBean>("批号仓位", filterTableData,
+                mPR_DETAILColumn,mOUTQTYColumn,mBA_LOCATIONColumn,mPD_BATCHCODEColumn,mPD_WHNAMEColumn,mProdcodeColumn,mPR_SPECColumn);
+        mSmartTable.setTableData(mTableData);
+        mSmartTable.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mSmartTable.postInvalidate();
+            }
+        }, 100);
+    }
+
+    private void getDataList() {
+        progressDialog.show();
+        mStockTaskMultipleBeans.clear();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_GETBATCHLOCATION)
+                .method(Request.Method.GET)
+                .addParam("pi_id", mPiid)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+                                StockTaskMultipleBean stockTaskMultipleBean = new StockTaskMultipleBean();
+                                stockTaskMultipleBean.setPD_PRODCODE(FastjsonUtil.getText(dataObject, "PD_PRODCODE"));
+                                stockTaskMultipleBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+                                stockTaskMultipleBean.setOUTQTY(FastjsonUtil.getText(dataObject, "OUTQTY"));
+                                stockTaskMultipleBean.setPD_WHNAME(FastjsonUtil.getText(dataObject, "PD_WHNAME"));
+                                stockTaskMultipleBean.setPD_BATCHCODE(FastjsonUtil.getText(dataObject, "PD_BATCHCODE"));
+                                stockTaskMultipleBean.setBA_LOCATION(FastjsonUtil.getText(dataObject, "BA_LOCATION"));
+                                stockTaskMultipleBean.setPR_SPEC(FastjsonUtil.getText(dataObject, "PR_SPEC"));
+
+                                mStockTaskMultipleBeans.add(stockTaskMultipleBean);
+                            }
+                        }
+                    }
+                    setTableData(mStockTaskMultipleBeans);
+                } catch (Exception e) {
+                    setTableData(mStockTaskMultipleBeans);
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                setTableData(mStockTaskMultipleBeans);
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+    @Override
+    public void onClick(Column<String> column, String value, String s, int position) {
+        String pd_prodcode = mStockTaskMultipleBeans.get(position).getPD_PRODCODE();
+//        CommonUtil.toastNoRepeat(getContext(),pd_prodcode+"");
+        if (StringUtil.isEmpty(pd_prodcode)){
+            CommonUtil.toastNoRepeat(getContext(),"物料编号为空");
+            SharedPreUtil.saveString(getContext(),"pd_prodcode_pop","null");
+            return;
+        }
+
+        SharedPreUtil.saveString(getContext(),"pd_prodcode_pop",pd_prodcode);
+        TakePhotoPopWin takePhotoPopWin = new TakePhotoPopWin(getContext(), onClickListener);
+        //showAtLocation(View parent, int gravity, int x, int y)
+        takePhotoPopWin.showAtLocation(root.findViewById(R.id.stock_data_summary_num_tv), Gravity.CENTER, 0, 0);
+
+
+    }
+    private View.OnClickListener onClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            switch (v.getId()) {
+//                case R.id.btn_take_photo:
+//                    System.out.println("btn_take_photo");
+//                    break;
+//                case R.id.btn_pick_photo:
+//                    System.out.println("btn_pick_photo");
+//                    break;
+            }
+        }
+    };
+}

+ 22 - 0
app/src/main/java/com/uas/hy_electronic/fragment/IOCOutMakeMaterialOper.java

@@ -1297,6 +1297,28 @@ public class IOCOutMakeMaterialOper extends BaseFragment implements View.OnClick
                 Button passBillBtn = (Button) materialOutMoreView.findViewById(R.id.pop_material_out_menu_6);
                 Button stockDataSummary = (Button) materialOutMoreView.findViewById(R.id.pop_material_out_menu_7);
 
+                Button stocklistDataSummary = (Button) materialOutMoreView.findViewById(R.id.pop_material_out_menu_8);
+                Button stockDatalistSummary = (Button) materialOutMoreView.findViewById(R.id.pop_material_out_menu_9);
+                stocklistDataSummary.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        closeListPopupWindow();
+                        ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+                        ((FunctionActivity) getActivity()).setScanIvVisible(false);
+                        clickToFragment(new BatchNumberDataListFragment());
+                    }
+                });
+                stockDatalistSummary.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        closeListPopupWindow();
+                        ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+                        ((FunctionActivity) getActivity()).setScanIvVisible(false);
+                        clickToFragment(new MaterialDataListFragment());
+                    }
+                });
+
+
                 stockTaskBtn.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {

+ 5 - 5
app/src/main/java/com/uas/hy_electronic/fragment/IndexWareHouseContentFragment.java

@@ -124,11 +124,11 @@ public class IndexWareHouseContentFragment extends BaseFragment implements Adapt
                             .replace(R.id.container_function_fragment, fragment).commit();
                     break;
 //                //盘点作业
-//                case GloableParams.GRIDNAME_WORK_INVENTORY:
-//                    fragment = new InventoryBillFragment();
-//                    getFragmentManager().beginTransaction().addToBackStack(null)
-//                            .replace(R.id.container_function_fragment, fragment).commit();
-//                    break;
+                case GloableParams.GRIDNAME_WORK_INVENTORY:
+                    fragment = new InventoryBillFragment();
+                    getFragmentManager().beginTransaction().addToBackStack(null)
+                            .replace(R.id.container_function_fragment, fragment).commit();
+                    break;
                 case GloableParams.MENU_STORAGE_BARCODE_INFO_COLLECT:
                     mFragment = new BarcodeInfoCollectFragment();
                     break;

+ 27 - 28
app/src/main/java/com/uas/hy_electronic/fragment/JLTStorageInBarcodeFragment.java

@@ -267,7 +267,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         CommonUtil.setEditorActionListener(jlt_storage_in_barcode_et, new MyEditorActionListener() {
             @Override
             public void MyEditorAction(String text, int actionId, KeyEvent event) {
-                newlinebarcodeEnter();
+//                newlinebarcodeEnter();
 
             }
         });
@@ -431,7 +431,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         }else {
             if ("true".equals(ischecheds)){
                 jlt_check_ok.setChecked(true);
-                jlt_storage_in_barcode_line.setVisibility(View.VISIBLE);
+                jlt_storage_in_barcode_line.setVisibility(View.GONE);//VISIBLE
             }else {
                 jlt_check_ok.setChecked(false);
                 jlt_storage_in_barcode_line.setVisibility(View.GONE);
@@ -442,7 +442,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
             @Override
             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                 if (isChecked==true){
-                    jlt_storage_in_barcode_line.setVisibility(View.VISIBLE);
+                    jlt_storage_in_barcode_line.setVisibility(View.GONE);//VISIBLE
                     SharedPreUtil.saveString(mActivity, Constants.JLTSTORAGEINISCHCKED, "true");
                 }else {
                     jlt_storage_in_barcode_line.setVisibility(View.GONE);
@@ -828,29 +828,29 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         }
         clearableedittextjudge();
     }
-    public void newlinebarcodeEnter(){
-        String mLotEditTexts = mLotEditText.getText().toString().trim();//仓位
-        String jlt_edit_lotnos = jlt_edit_lotno.getText().toString().trim();//LoNo
-        String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
-        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
-        if (check_box_positions.isChecked()==true&&mLotEditTexts.isEmpty()){
-            mLotEditText.requestFocus();
-            return;
-        }
-        if (check_box_lono.isChecked()==true&&jlt_edit_lotnos.isEmpty()){
-            jlt_edit_lotno.requestFocus();
-            return;
-        }
-        if (check_box_date.isChecked()==true&&jlt_edit_dataecodes.isEmpty()){
-            jlt_edit_dataecode.requestFocus();
-            return;
-        }
-        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
-            jlt_edit_dc.requestFocus();
-            return;
-        }
-        clearableedittextjudge();
-    }
+//    public void newlinebarcodeEnter(){
+//        String mLotEditTexts = mLotEditText.getText().toString().trim();//仓位
+//        String jlt_edit_lotnos = jlt_edit_lotno.getText().toString().trim();//LoNo
+//        String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
+//        String jlt_edit_dcs = jlt_edit_dc.getText().toString().trim();//字符
+//        if (check_box_positions.isChecked()==true&&mLotEditTexts.isEmpty()){
+//            mLotEditText.requestFocus();
+//            return;
+//        }
+//        if (check_box_lono.isChecked()==true&&jlt_edit_lotnos.isEmpty()){
+//            jlt_edit_lotno.requestFocus();
+//            return;
+//        }
+//        if (check_box_date.isChecked()==true&&jlt_edit_dataecodes.isEmpty()){
+//            jlt_edit_dataecode.requestFocus();
+//            return;
+//        }
+//        if (check_box_dc.isChecked()==true&&jlt_edit_dcs.isEmpty()){
+//            jlt_edit_dc.requestFocus();
+//            return;
+//        }
+//        clearableedittextjudge();
+//    }
     public void newlinemLotEnter(){
         String jlt_edit_lotnos = jlt_edit_lotno.getText().toString().trim();//LoNo
         String jlt_edit_dataecodes = jlt_edit_dataecode.getText().toString().trim();//日期
@@ -1113,7 +1113,7 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
                         jlt_storage_in_barcode_et.requestFocus();
                         jlt_storage_in_barcode_et.setSelection(jlt_edit_qty.getText().toString().trim().length());
                     }else {
-                        newlinebarcodeEnter();
+//                        newlinebarcodeEnter();
                     }
 
 
@@ -1206,7 +1206,6 @@ public class JLTStorageInBarcodeFragment extends BaseFragment implements View.On
         Button pop_toadoptprompt = (Button) mMenuView.findViewById(R.id.pop_toadoptprompt);
         Button pop_material_in_menu_back = (Button) mMenuView.findViewById(R.id.pop_material_in_menu_back);
 
-        postBtn.setVisibility(View.GONE);
         todoListBtn.setVisibility(View.GONE);
         revokeCollectBtn.setText("确认入库");
         revokeCollectBtn.setVisibility(View.GONE);

+ 206 - 0
app/src/main/java/com/uas/hy_electronic/fragment/MaterialDataListFragment.java

@@ -0,0 +1,206 @@
+package com.uas.hy_electronic.fragment;
+
+import android.os.Build;
+import android.os.Bundle;
+import android.support.annotation.RequiresApi;
+import android.view.Gravity;
+import android.view.KeyEvent;
+import android.view.View;
+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.Column;
+import com.bin.david.form.data.table.TableData;
+import com.bin.david.form.listener.OnColumnItemClickListener;
+import com.uas.hy_electronic.R;
+import com.uas.hy_electronic.bean.StockTaskMultipleBean;
+import com.uas.hy_electronic.global.GloableParams;
+import com.uas.hy_electronic.tools.SharedPreUtil;
+import com.uas.hy_electronic.util.CommonUtil;
+import com.uas.hy_electronic.util.FastjsonUtil;
+import com.uas.hy_electronic.util.HttpCallback;
+import com.uas.hy_electronic.util.HttpParams;
+import com.uas.hy_electronic.util.StringUtil;
+import com.uas.hy_electronic.util.VolleyRequest;
+import com.uas.hy_electronic.view.TakePhotoPopWin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2024/4/17
+ * Desc: 物料仓位
+ */
+public class MaterialDataListFragment extends BaseFragment implements OnColumnItemClickListener<String> {
+    private SmartTable mSmartTable;
+    private Column<String> mPR_DETAILColumn,mOUTQTYColumn,mBA_LOCATIONColumn,mPD_WHNAMEColumn,mProdcodeColumn,mPR_SPECColumn;
+    private TableData<StockTaskMultipleBean> mTableData;
+    private TextView mNumTextView;
+    private String mPiid, mWhcode, mInouno;
+    private List<StockTaskMultipleBean> mStockTaskMultipleBeans;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_material_datalist;
+    }
+
+    @Override
+    protected void initViews() {
+        setTitle("物料仓位");
+        Bundle bundle = getArguments();
+        if (bundle != null) {
+            mInouno = bundle.getString("pi_inoutno");
+            mWhcode = bundle.getString("pd_whcode");
+            mPiid = bundle.getString("pi_id");
+        }
+
+        mNumTextView = root.findViewById(R.id.stock_data_summary_num_tv);
+        mSmartTable = root.findViewById(R.id.stock_data_summary_st);
+
+        CommonUtil.getDefaultTable(mActivity, mSmartTable);
+
+        mPR_DETAILColumn = new Column<String>("物料名称", "PR_DETAIL");
+        mPR_DETAILColumn.setFixed(true);
+        mOUTQTYColumn = new Column<String>("领料数量", "OUTQTY");
+        mBA_LOCATIONColumn = new Column<String>("仓位", "BA_LOCATION");
+        mPD_WHNAMEColumn = new Column<String>("仓库名称", "PD_WHNAME");
+
+        mProdcodeColumn = new Column<String>("物料编号", "PD_PRODCODE");
+        mPR_SPECColumn = new Column<String>("物料规格", "PR_SPEC");
+
+
+
+
+
+
+
+
+
+
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+        mNumTextView.setText("单号:" + mInouno);
+
+        mStockTaskMultipleBeans = new ArrayList<>();
+        setTableData(mStockTaskMultipleBeans);
+
+        getDataList();
+//        mTypeColumn.setOnColumnItemClickListener(this);
+        mProdcodeColumn.setOnColumnItemClickListener(this);
+//        mOutqtyColumn.setOnColumnItemClickListener(this);
+    }
+
+    private void setTableData(List<StockTaskMultipleBean> filterTableData) {
+        mTableData = new TableData<StockTaskMultipleBean>("物料仓位", filterTableData,
+                mPR_DETAILColumn,mOUTQTYColumn,mBA_LOCATIONColumn,mPD_WHNAMEColumn,mProdcodeColumn,mPR_SPECColumn);
+        mSmartTable.setTableData(mTableData);
+        mSmartTable.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mSmartTable.postInvalidate();
+            }
+        }, 100);
+    }
+
+    private void getDataList() {
+        progressDialog.show();
+        mStockTaskMultipleBeans.clear();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_GETPRODLOCATION)
+                .method(Request.Method.GET)
+                .addParam("pi_id", mPiid)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+                                StockTaskMultipleBean stockTaskMultipleBean = new StockTaskMultipleBean();
+                                stockTaskMultipleBean.setPD_PRODCODE(FastjsonUtil.getText(dataObject, "PD_PRODCODE"));
+                                stockTaskMultipleBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+                                stockTaskMultipleBean.setOUTQTY(FastjsonUtil.getText(dataObject, "OUTQTY"));
+                                stockTaskMultipleBean.setPD_WHNAME(FastjsonUtil.getText(dataObject, "PD_WHNAME"));
+                                stockTaskMultipleBean.setBA_LOCATION(FastjsonUtil.getText(dataObject, "BA_LOCATION"));
+                                stockTaskMultipleBean.setPR_SPEC(FastjsonUtil.getText(dataObject, "PR_SPEC"));
+
+                                mStockTaskMultipleBeans.add(stockTaskMultipleBean);
+                            }
+                        }
+                    }
+                    setTableData(mStockTaskMultipleBeans);
+                } catch (Exception e) {
+                    setTableData(mStockTaskMultipleBeans);
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                setTableData(mStockTaskMultipleBeans);
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+            }
+        });
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+
+
+    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+    @Override
+    public void onClick(Column<String> column, String value, String s, int position) {
+        String pd_prodcode = mStockTaskMultipleBeans.get(position).getPD_PRODCODE();
+//        CommonUtil.toastNoRepeat(getContext(),pd_prodcode+"");
+        if (StringUtil.isEmpty(pd_prodcode)){
+            CommonUtil.toastNoRepeat(getContext(),"物料编号为空");
+            SharedPreUtil.saveString(getContext(),"pd_prodcode_pop","null");
+            return;
+        }
+
+        SharedPreUtil.saveString(getContext(),"pd_prodcode_pop",pd_prodcode);
+        TakePhotoPopWin takePhotoPopWin = new TakePhotoPopWin(getContext(), onClickListener);
+        //showAtLocation(View parent, int gravity, int x, int y)
+        takePhotoPopWin.showAtLocation(root.findViewById(R.id.stock_data_summary_num_tv), Gravity.CENTER, 0, 0);
+
+
+    }
+    private View.OnClickListener onClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            switch (v.getId()) {
+//                case R.id.btn_take_photo:
+//                    System.out.println("btn_take_photo");
+//                    break;
+//                case R.id.btn_pick_photo:
+//                    System.out.println("btn_pick_photo");
+//                    break;
+            }
+        }
+    };
+}

+ 7 - 1
app/src/main/java/com/uas/hy_electronic/fragment/MaterialInCollectFragment.java

@@ -310,7 +310,7 @@ public class MaterialInCollectFragment extends BaseFragment implements View.OnCl
                     mLotNoEditText.setEnabled(false);
                     mDateCodeEditText.setEnabled(false);
                     mOldEditText.setEnabled(false);
-                    mLocationEditText.setEnabled(false);
+                    mLocationEditText.setEnabled(true);
                     mDcEditText.setEnabled(false);
                     mCalendarImageView.setClickable(false);
                     if (!mContinuousCheckBox.isChecked()) {
@@ -1049,9 +1049,15 @@ public class MaterialInCollectFragment extends BaseFragment implements View.OnCl
 //                                }
 //                            }, 100);
                             mBarcodeEditText.requestFocus();
+
                             try {
                                 JSONObject resultObject = new JSONObject(s);
                                 mResultTextView.setText(resultObject.optString("data"));
+
+                                if (!mContinuousCheckBox.isChecked()){
+                                    mLocationEditText.setText("");
+                                }
+
                             } catch (JSONException e) {
                                 e.printStackTrace();
                             }

+ 187 - 0
app/src/main/java/com/uas/hy_electronic/fragment/ReportDetailFragment.java

@@ -0,0 +1,187 @@
+package com.uas.hy_electronic.fragment;
+
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.widget.ListView;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.android.volley.toolbox.StringRequest;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.uas.hy_electronic.R;
+import com.uas.hy_electronic.activity.FunctionActivity;
+import com.uas.hy_electronic.adapter.ReportDetailAdapter;
+import com.uas.hy_electronic.bean.ReportDetailBean;
+import com.uas.hy_electronic.global.GloableParams;
+import com.uas.hy_electronic.util.CommonUtil;
+import com.uas.hy_electronic.util.FastjsonUtil;
+import com.uas.hy_electronic.util.HttpCallback;
+import com.uas.hy_electronic.util.HttpParams;
+import com.uas.hy_electronic.util.VollyRequest;
+import com.uas.hy_electronic.view.EmptyLayout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ReportDetailFragment extends BaseFragment {
+    private StringRequest mStringRequest;
+    private Boolean canReturn = true;
+    private PullToRefreshListView mStocksListView;
+    private ReportDetailAdapter reportDetailAdapter;
+    private List<ReportDetailBean> mStockAlreadyItemBeans;
+    private String code;
+    private EmptyLayout mEmptyLayout;
+    private int mPage = 1;
+    private int mPageSize = 10;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_report_detail;
+    }
+
+    @Override
+    protected void initViews() {
+        ((FunctionActivity) getActivity()).setTitle("条码明细");
+        mStocksListView=root.findViewById(R.id.rv_content);
+        mStockAlreadyItemBeans = new ArrayList<>();
+        mEmptyLayout = new EmptyLayout(getActivity(), mStocksListView.getRefreshableView());
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("无数据");
+
+    }
+    @Override
+    protected void initEvents() {
+        if (true) {
+            mStocksListView.setMode(PullToRefreshBase.Mode.BOTH);
+        } else {
+            mStocksListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+        }
+
+        reportDetailAdapter=new ReportDetailAdapter(mActivity, mStockAlreadyItemBeans);
+        mStocksListView.setAdapter(reportDetailAdapter);
+
+        mStocksListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                if (CommonUtil.isNetWorkConnected(mActivity)) {
+                    mEmptyLayout.showLoading();
+                    mPage = 1;
+                    mStockAlreadyItemBeans.clear();
+                    getStockAlreadyList();
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, getString(R.string.net_not_connect));
+                    mStocksListView.postDelayed(new Runnable() {
+                        @Override
+                        public void run() {
+                            mStocksListView.onRefreshComplete();
+                        }
+                    }, 100);
+                    mEmptyLayout.setErrorMessage(getString(R.string.net_not_connect));
+                    mEmptyLayout.showError();
+                }
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+                if (CommonUtil.isNetWorkConnected(mActivity)) {
+                    mPage++;
+                    getStockAlreadyList();
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, getString(R.string.net_not_connect));
+                    mStocksListView.onRefreshComplete();
+                    mEmptyLayout.setErrorMessage(getString(R.string.net_not_connect));
+                    mEmptyLayout.showError();
+                }
+            }
+        });
+
+
+//        mActivity.findViewById(R.id.btn_actionbar_withback).setOnClickListener(new View.OnClickListener() {
+//            @Override
+//            public void onClick(View v) {
+//                if(canReturn){
+//                    getActivity().finish();
+//                }
+//                progressDialog.dismiss();
+//            }
+//        });
+
+    }
+
+    @Override
+    protected void initDatas() {
+        Bundle bundle = getArguments();//从activity传过来的Bundle
+        if(bundle!=null){
+            code = bundle.getString("code");
+        }
+        getStockAlreadyList();
+    }
+    public void getStockAlreadyList(){
+        progressDialog.show();
+        VollyRequest.getInstance().stringRequest(mStringRequest,
+                new HttpParams.Builder()
+                        .url(GloableParams.ADDRESS_GETNOTIFYBARLIST)
+                        .method(Request.Method.GET)
+                        .tag(TAG + "getReportData")
+                        .flag(0)
+                        .addParam("code",code)
+                        .addParam("page",mPage+"")
+                        .addParam("pageSize",mPageSize+"")
+                        .build(), new HttpCallback() {
+                    @Override
+                    public void onSuccess(int flag, Object o) throws Exception {
+                        progressDialog.dismiss();
+                        try {
+                            Boolean isSuccess = FastjsonUtil.getBoolean(o.toString(), "success");
+                            if (isSuccess) {
+                                JSONArray dataArray = FastjsonUtil.getJSONArray(o.toString(),"data");
+                                for(Object index:dataArray){
+                                    JSONObject data = (JSONObject) index;
+                                    ReportDetailBean bean = new ReportDetailBean();
+                                    bean.setBAN_ID(data.getString("BAN_ID"));
+                                    bean.setBAN_BARCODE(data.getString("BAN_BARCODE"));
+                                    bean.setBAN_PRODCODE(data.getString("BAN_PRODCODE"));
+                                    bean.setBAN_ANCODE(data.getString("BAN_ANCODE"));
+                                    bean.setBAN_ANID(data.getString("BAN_ANID"));
+                                    bean.setBAN_QTY(data.getString("BAN_QTY"));
+                                    bean.setBAN_CUCHECK(data.getString("BAN_CUCHECK"));
+                                    bean.setPR_DETAIL(data.getString("PR_DETAIL"));
+                                    bean.setPR_ID(data.getString("PR_ID"));
+                                    bean.setRN(data.getString("RN"));
+                                    mStockAlreadyItemBeans.add(bean);
+                                }
+                                reportDetailAdapter.notifyDataSetChanged();
+                                if (mStocksListView.isRefreshing()) {
+                                    mStocksListView.onRefreshComplete();
+                                }
+                                if (mStockAlreadyItemBeans.size() == 0) {
+                                    mEmptyLayout.showEmpty();
+                                }
+                            }
+                        } catch (Exception e) {
+
+                        }
+                    }
+
+                    @Override
+                    public void onFail(int flag, String failStr) throws Exception {
+                        progressDialog.dismiss();
+                        CommonUtil.toastNoRepeat(mActivity, failStr);
+                    }
+                });
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+}

+ 16 - 0
app/src/main/java/com/uas/hy_electronic/fragment/StorageRechargeFragment.java

@@ -131,6 +131,7 @@ public class StorageRechargeFragment extends BaseFragment implements View.OnClic
 
         Button doneButton = (Button) view.findViewById(R.id.pop_storage_recharge_menu_1);
         Button todoButton = (Button) view.findViewById(R.id.pop_storage_recharge_menu_2);
+        Button tothButton = (Button) view.findViewById(R.id.pop_storage_recharge_menu_3);
 
         mFragment = new StorageRechargeListFragment();
 
@@ -155,6 +156,21 @@ public class StorageRechargeFragment extends BaseFragment implements View.OnClic
                 FragmentUtils.switchFragment(StorageRechargeFragment.this, mFragment);
             }
         });
+        ReportDetailFragment reportDetailFragment=new ReportDetailFragment();
+        tothButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                if ( ce_prodcode.getText().toString().trim().isEmpty()){
+                    CommonUtil.toastNoRepeat(mActivity, "请输入通知单号");
+                    return;
+                }
+                Bundle bundle = new Bundle();
+                bundle.putString("code", ce_prodcode.getText().toString().trim());
+                reportDetailFragment.setArguments(bundle);
+                FragmentUtils.switchFragment(StorageRechargeFragment.this, reportDetailFragment);
+            }
+        });
 
         mMenuPopupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
         mMenuPopupWindow.setBackgroundDrawable(new BitmapDrawable());

+ 17 - 2
app/src/main/java/com/uas/hy_electronic/global/GloableParams.java

@@ -267,6 +267,9 @@ public class GloableParams {
     public static String ADDRESS_INVENTORYBINDING2;
     public static String ADDRESS_TURNPURCBARCODE;
     public static String ADDRESS_UPDATEANDWHCODE;
+    public static String ADDRESS_GETPRODLOCATION;
+    public static String ADDRESS_GETBATCHLOCATION;
+    public static String ADDRESS_GETNOTIFYBARLIST;
 
 
 
@@ -572,6 +575,15 @@ public class GloableParams {
     private static String ADDRESSTAIL_OUT_SAVE_BARCODE = "/api/pda/outMaterial/saveAll.action";
     private static String ADDRESSTAIL_OUT_NEED_GET_LIST_DEAL = "/api/pda/outMaterial/getNeedGetListDeal.action";
     private static String ADDRESSTAIL_OUTMATERIAL_GETPREMATERIALLIST = "/api/pda/outMaterial/getPreMaterialList.action";
+    //物料仓位
+    private static String ADDRESSTAIL_OUTMATERIAL_GETPRODLOCATION = "/api/pda/outMaterial/getProdLocation.action";
+    //批号仓位
+    private static String ADDRESSTAIL_OUTMATERIAL_GETBATCHLOCATION = "/api/pda/outMaterial/getBatchLocation.action";
+
+    private static String ADDRESSTAIL_OUTMATERIAL_GETNOTIFYBARLIST = "/api/pda/acceptNToVerify/getNotifyBarList.action";
+
+
+
     //材料出库获取下一采集货品信息
     private static String ADDRESSTAIL_OUT_GET_NEXT_PRODCODE = "/api/pda/outMaterial/getNextByProdcode.action";
     private static String ADDRESSTAIL_OUT_GET_NEXT_BATCH = "/api/pda/outMaterial/getNextByBatch.action";
@@ -829,8 +841,8 @@ public class GloableParams {
             GRIDNAME_BATCH_OPRATION,
 //            GRIDNAME_STORAGE_TRANSFER,
             GRIDNAME_MODIFY_QUANTITY,
-//            GRIDNAME_WORK_INVENTORY,
             MENU_STORAGE_BARCODE_INFO_COLLECT,
+            GRIDNAME_WORK_INVENTORY,
 //            MENU_STORAGE_STOCK_INFO_COLLECT
 //            GRIDNAME_BOM_CHECK,
 //            GRIDNAME_FINISHED_PRODUCT_STORAGE,
@@ -846,7 +858,7 @@ public class GloableParams {
             R.drawable.storage_work_inventory,
             R.drawable.ic_modify_quantity,
 //            R.drawable.storage_transfer
-//            R.drawable.storage_msd_manager,
+            R.drawable.storage_msd_manager,
 //            R.drawable.ic_finished_product_storage,
 //            R.drawable.ic_finished_product_outbound,
 //            R.drawable.move_the_container,
@@ -1229,6 +1241,9 @@ public class GloableParams {
         GloableParams.ADDRESS_INVENTORYBINDING2= uriHead + GloableParams.ADDRESSTAIL_RECEIVING_INVENTORYBINDING2;
         GloableParams.ADDRESS_TURNPURCBARCODE= uriHead + GloableParams.ADDRESSTAIL_IQC_GETLIST_TURNPURCBARCODE;
         GloableParams.ADDRESS_UPDATEANDWHCODE= uriHead + GloableParams.ADDRESSTAIL_IQC_GETLIST_UPDATEANDWHCODE;
+        GloableParams.ADDRESS_GETPRODLOCATION= uriHead + GloableParams.ADDRESSTAIL_OUTMATERIAL_GETPRODLOCATION;
+        GloableParams.ADDRESS_GETBATCHLOCATION= uriHead + GloableParams.ADDRESSTAIL_OUTMATERIAL_GETBATCHLOCATION;
+        GloableParams.ADDRESS_GETNOTIFYBARLIST= uriHead + GloableParams.ADDRESSTAIL_OUTMATERIAL_GETNOTIFYBARLIST;
 
     }
 }

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

@@ -739,7 +739,7 @@ public class CommonUtil {
      */
     public static String doubleFormat(double v) {
         try {
-            DecimalFormat decimalFormat = new DecimalFormat("###.####");
+            DecimalFormat decimalFormat = new DecimalFormat("###.##########");
             return decimalFormat.format(v);
         } catch (Exception e) {
             return "";

+ 281 - 0
app/src/main/java/com/uas/hy_electronic/util/DateFormatUtils.java

@@ -0,0 +1,281 @@
+package com.uas.hy_electronic.util;
+
+import android.text.TextUtils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/6/25 9:52
+ */
+public class DateFormatUtils {
+    public static final String YMD = "yyyy-MM-dd";
+    public static final String YEAR = "yyyy";
+    public static final String YMD_HMS = "yyyy-MM-dd HH:mm:ss";
+    public static final String YMD_HM = "yyyy-MM-dd HH:mm";
+    public static final String HM = "HH:mm";
+    public static final String MD = "MM-dd";
+
+
+    public static SimpleDateFormat getFormat(String format) {
+        return new SimpleDateFormat(format);
+    }
+
+    public static String long2Str(long timemillis, String format) {
+        SimpleDateFormat s = new SimpleDateFormat(format);
+        return s.format(new Date(timemillis));
+    }
+
+    public static String long2Str(String format) {
+        SimpleDateFormat s = new SimpleDateFormat(format);
+        return s.format(new Date(System.currentTimeMillis()));
+    }
+
+    public static String date2Str(Date date, String format) {
+        if (date == null) return "";
+        SimpleDateFormat s = new SimpleDateFormat(format);
+        return s.format(date);
+    }
+
+    public static Date str2date(String str, String format) {
+        return new Date(str2Long(str, format));
+    }
+
+    public static long str2Long(String time, String format) {
+        if (TextUtils.isEmpty(time)) {
+            return 0;
+        }
+        SimpleDateFormat s = new SimpleDateFormat(format);
+        try {
+            return s.parse(time).getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+
+    public static String formatChange(String data, String format) {
+        if (data == null || data.length() <= 0) {
+            return "";
+        } else {
+            SimpleDateFormat df = new SimpleDateFormat(format);
+            try {
+                Date d = df.parse(data);
+                return df.format(d);
+            } catch (ParseException e) {
+                return "";
+            }
+        }
+    }
+
+
+    /**
+     * add by gongtao
+     * <p>
+     * 将Date类型的日期格式 转换为 符合要求的 String日期格式
+     * </P>
+     *
+     * @param date
+     * @param format
+     * @return
+     */
+    public static String getStrDate4Date(Date date, String format) {
+        if (date == null) {
+            return "";
+        } else {
+            SimpleDateFormat df = new SimpleDateFormat(format);
+            return df.format(date);
+        }
+    }
+
+    /**
+     * add by gongtao 计算指定日期时间之间的时间差
+     *
+     * @param beginStr 开始日期字符串
+     * @param endStr   结束日期字符串
+     * @param f        时间差的形式0-秒,1-分种,2-小时,3--天 日期时间字符串格式:yyyyMMddHHmmss
+     */
+    public static int getInterval(String beginStr, String endStr, int f) {
+        int hours = 0;
+        try {
+            Date beginDate = getFormat(YMD_HMS).parse(beginStr);
+            Date endDate = getFormat(YMD_HMS).parse(endStr);
+            long millisecond = endDate.getTime() - beginDate.getTime(); // 日期相减获取日期差X(单位:毫秒)
+            /**
+             * Math.abs((int)(millisecond/1000)); 绝对值 1秒 = 1000毫秒
+             * millisecond/1000 --> 秒 millisecond/1000*60 - > 分钟
+             * millisecond/(1000*60*60) -- > 小时 millisecond/(1000*60*60*24) -->
+             * 天
+             * */
+            switch (f) {
+                case 0: // second
+                    return (int) (millisecond / 1000);
+                case 1: // minute
+                    return (int) (millisecond / (1000 * 60));
+                case 2: // hour
+                    return (int) (millisecond / (1000 * 60 * 60));
+                case 3: // day
+                    return (int) (millisecond / (1000 * 60 * 60 * 24));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return hours;
+    }
+
+    /**
+     * add by lipp
+     * <p>
+     * 获取起始日期前或后天数的日期
+     * </P>
+     *
+     * @param starttime 起始日期 格式:yyyy-MM-dd
+     * @param days
+     * @return
+     * @throws ParseException
+     */
+    public static Date getStartDateInterval(String starttime, int days) {
+        // 格式化起始时间 yyyyMMdd
+        Date startDate = null;
+        try {
+            startDate = getFormat(YMD).parse(starttime);
+
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Calendar startTime = Calendar.getInstance();
+        startTime.clear();
+        startTime.setTime(startDate);
+        startTime.add(Calendar.DAY_OF_YEAR, days);
+        return startTime.getTime();
+    }
+
+    /**
+     * add by lipp
+     * <p>
+     * 获取起始日期和结束日期之间的天数
+     * </P>
+     *
+     * @param beginStr 起始日期
+     * @param endStr   结束日期
+     * @param format   根据 日期参数的格式,传对应的SimpleDateFormat格式
+     * @return 天数
+     */
+    public static int getDaysInterval(String beginStr, String endStr,
+                                      SimpleDateFormat format) {
+        try {
+            Date beginDate = format.parse(beginStr);
+            Date endDate = format.parse(endStr);
+            long millisecond = endDate.getTime() - beginDate.getTime(); // 日期相减获取日期差X(单位:毫秒)
+            return (int) (millisecond / (1000 * 60 * 60 * 24));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+
+    /**
+     * 根据指定日期,来运算加减乘
+     *
+     * @param date
+     * @param format
+     * @param value  add(new Date(),"yyyy-MM-dd HH:mm:ss",-1 * 1 * 60 * 60 * 1000);
+     */
+    public static String add(Date date, String format, long value) {
+        SimpleDateFormat df = new SimpleDateFormat(format);
+        long newValue = date.getTime() + value;
+        return df.format(new Date(newValue));
+    }
+
+    /**
+     * add by gongtao
+     * <p>
+     * 将字符串类型的日期格式 转换为 符合要求的 Date类型的日期格式
+     * </P>
+     *
+     * @param date
+     * @param format
+     * @return
+     */
+    public static Date getDate4StrDate(String date, String format) {
+        if (date == null || date.trim().equals("")) {
+            return null;
+        } else {
+            SimpleDateFormat df = new SimpleDateFormat(format);
+            try {
+                return df.parse(date);
+            } catch (ParseException e) {
+                return null;
+            }
+        }
+    }
+
+    /**
+     * @param beginDate
+     * @param endDate
+     * @param f         时间差的形式0:秒,1:分种,2:小时,3:天
+     * @return
+     */
+    public static int getDifferenceNum(Date beginDate, Date endDate, int f) {
+        int result = 0;
+        if (beginDate == null || endDate == null) {
+            return 0;
+        }
+        try {
+            // 日期相减获取日期差X(单位:毫秒)
+            long millisecond = endDate.getTime() - beginDate.getTime();
+            /**
+             * Math.abs((int)(millisecond/1000)); 绝对值 1秒 = 1000毫秒
+             * millisecond/1000 --> 秒 millisecond/1000*60 - > 分钟
+             * millisecond/(1000*60*60) -- > 小时 millisecond/(1000*60*60*24) -->
+             * 天
+             * */
+            switch (f) {
+                case 0: // second
+                    return (int) (millisecond / 1000);
+                case 1: // minute
+                    return (int) (millisecond / (1000 * 60));
+                case 2: // hour
+                    return (int) (millisecond / (1000 * 60 * 60));
+                case 3: // day
+                    return (int) (millisecond / (1000 * 60 * 60 * 24));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+
+    /**
+     * 获取两个时间点所相差的时间戳
+     *
+     * @param start 开始时间 HH:mm
+     * @param end   结束时间 HH:mm
+     * @return 时间长度差(s)
+     */
+    public static int getDifferSS(String start, String end) throws Exception {
+        String startTime = long2Str(YMD) + " " + start + ":00";
+        String endTime = null;
+        if (start.compareTo(end) > 0) {
+            endTime = long2Str(System.currentTimeMillis() + (24 * 60 * 60 * 1000), YMD) + " " + end + ":00";
+        } else {
+            endTime = long2Str(YMD) + " " + end + ":00";
+        }
+        return (int) ((str2Long(endTime, YMD_HMS) - str2Long(startTime, YMD_HMS)) / 1000);
+    }
+
+
+    public static long hhmm2Long(String hhMM) {
+        if (StringUtil.isEmpty(hhMM)) return 0;
+        String che = long2Str(DateFormatUtils.YMD) + " " + hhMM + ":00";//当天下班时间
+        return DateFormatUtils.str2Long(che, DateFormatUtils.YMD_HMS);
+    }
+
+}

+ 1 - 1
app/src/main/java/com/uas/hy_electronic/util/VolleyRequest.java

@@ -103,7 +103,7 @@ public class VolleyRequest {
                     }
                 }
                 index++;
-                Log.e("index",index+"");
+
             }
         }
 

+ 2 - 1
app/src/main/res/layout/fragment_jlt_storage_in_barcode.xml

@@ -372,7 +372,8 @@
                     android:id="@+id/jlt_storage_in_barcode_line"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginTop="4dp">
+                    android:layout_marginTop="4dp"
+                    android:visibility="gone">
 
                     <TextView
                         style="@style/tl_tv_style"

+ 29 - 0
app/src/main/res/layout/fragment_material_datalist.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="10dp">
+
+        <TextView
+            android:id="@+id/stock_data_summary_num_tv"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="单号:"
+            android:textColor="#333333"
+            android:textSize="14sp" />
+
+    </LinearLayout>
+
+
+    <com.bin.david.form.core.SmartTable
+        android:id="@+id/stock_data_summary_st"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</LinearLayout>

+ 2 - 2
app/src/main/res/layout/fragment_material_in_collect.xml

@@ -60,7 +60,7 @@
                 android:id="@+id/material_in_collect_continuous_cb"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="连续采集" />
+                android:text="连续采集多个条码,批量绑定" />
 
             <TableRow android:background="@color/white">
 
@@ -248,7 +248,7 @@
                     style="@style/EditTextStyle"
                     android:layout_width="0dp"
                     android:layout_weight="1"
-                    android:enabled="false"
+                    android:enabled="true"
                     android:focusable="true"
                     android:focusableInTouchMode="true"
                     android:hint="请输入仓位"

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

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+<!--    <android.support.v7.widget.RecyclerView-->
+<!--        android:id="@+id/rv_content"-->
+<!--        android:layout_width="match_parent"-->
+<!--        android:layout_height="wrap_content">-->
+
+<!--    </android.support.v7.widget.RecyclerView>-->
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/rv_content"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="10dp"
+        android:layerType="software"
+        android:scrollingCache="false" />
+
+</LinearLayout>

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

@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/selector_pop_item_bg"
+    android:orientation="vertical"
+    android:padding="@dimen/spacing_normal">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp">
+
+        <TextView
+            android:id="@+id/stock_already_list_barcode"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textStyle="bold"
+            tools:text="stock_task_prodcode" />
+
+        <TextView
+            android:id="@+id/stock_already_list_outqty"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textStyle="bold"
+            tools:text="12" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textStyle="bold"
+            android:text="料号:" />
+
+        <TextView
+            android:id="@+id/stock_already_list_prodcode"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textStyle="bold"
+            tools:text="12" />
+
+
+        <TextView
+            android:id="@+id/tv_pdgget"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textStyle="bold"
+            tools:text="A001" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textStyle="bold"
+            android:text="物料名称:" />
+
+        <TextView
+            android:id="@+id/stock_already_list_detail"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="0.8"
+            android:textStyle="bold"
+            tools:text="20" />
+
+
+    </LinearLayout>
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textStyle="bold"
+            android:text="规格:" />
+
+        <TextView
+            android:id="@+id/tv_type_value"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:textStyle="bold"
+            tools:text="A001" />
+    </LinearLayout>
+
+
+    <LinearLayout
+        android:visibility="gone"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="批号:" />
+
+        <TextView
+            android:id="@+id/stock_already_list_batchcode"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            tools:text="A-12768373" />
+
+        <TextView
+            android:id="@+id/stock_already_list_location_caption"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="仓位:" />
+
+        <TextView
+            android:id="@+id/stock_already_list_location"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            tools:text="A001" />
+
+    </LinearLayout>
+
+</LinearLayout>

+ 166 - 0
app/src/main/res/layout/item_report_detail.xml

@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--主菜单griditem布局-->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:paddingTop="10dp"
+    android:paddingLeft="15dp"
+    android:paddingRight="10dp"
+    >
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <TextView
+            android:layout_width="90dp"
+            android:layout_height="match_parent"
+            android:text="条码号:"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+        <TextView
+            android:id="@+id/tv_pichi"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingLeft="6dp"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:orientation="horizontal">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="物料编号:"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+        <TextView
+            android:id="@+id/tv_report_num"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="80dp"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:orientation="horizontal">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="收料通知单号:"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/tv_destory_num"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:ellipsize="end"
+            android:paddingLeft="6dp"
+            android:singleLine="true"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+
+
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:orientation="horizontal">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="报工人:"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+        <TextView
+            android:id="@+id/tv_report_man"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="80dp"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text=""
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+        <TextView
+            android:id="@+id/tv_report_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:orientation="horizontal">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="物料名称:"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+        <TextView
+            android:id="@+id/tv_pr_detail"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="80dp"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:orientation="horizontal">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:text="物料名称:"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp" />
+        <TextView
+            android:id="@+id/tv_pr_spec"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="80dp"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            tools:text="YS1506002" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:layout_marginTop="10dp"
+        android:background="@color/me_menu_item_press"/>
+
+</LinearLayout>
+

+ 29 - 9
app/src/main/res/layout/pop_material_out_menu.xml

@@ -47,34 +47,54 @@
         android:textSize="@dimen/app_text_size_body_2" />
 
     <Button
-        android:id="@+id/pop_material_out_menu_4"
+        android:id="@+id/pop_material_out_menu_6"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="10dp"
         android:layout_marginRight="10dp"
         android:background="@color/transparent"
-        android:text="修改数量"
-        android:textSize="@dimen/app_text_size_body_2"
-        android:visibility="gone"/>
+        android:text="单据过账"
+        android:textSize="@dimen/app_text_size_body_2" />
 
     <Button
-        android:id="@+id/pop_material_out_menu_5"
+        android:id="@+id/pop_material_out_menu_8"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="10dp"
         android:layout_marginRight="10dp"
         android:background="@color/transparent"
-        android:text="特殊出库"
+        android:text="批号仓位"
+        android:textSize="@dimen/app_text_size_body_2" />
+    <Button
+        android:id="@+id/pop_material_out_menu_9"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:background="@color/transparent"
+        android:text="物料仓位"
+        android:textSize="@dimen/app_text_size_body_2" />
+
+
+    <Button
+        android:id="@+id/pop_material_out_menu_4"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:background="@color/transparent"
+        android:text="修改数量"
         android:textSize="@dimen/app_text_size_body_2"
         android:visibility="gone"/>
 
     <Button
-        android:id="@+id/pop_material_out_menu_6"
+        android:id="@+id/pop_material_out_menu_5"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="10dp"
         android:layout_marginRight="10dp"
         android:background="@color/transparent"
-        android:text="单据过账"
-        android:textSize="@dimen/app_text_size_body_2" />
+        android:text="特殊出库"
+        android:textSize="@dimen/app_text_size_body_2"
+        android:visibility="gone"/>
 </LinearLayout>

+ 9 - 0
app/src/main/res/layout/pop_storage_recharge_menu.xml

@@ -26,4 +26,13 @@
         android:background="@color/transparent"
         android:text="未转收料"
         android:textSize="@dimen/app_text_size_body_2" />
+    <Button
+        android:id="@+id/pop_storage_recharge_menu_3"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:background="@color/transparent"
+        android:text="条码明细"
+        android:textSize="@dimen/app_text_size_body_2" />
 </LinearLayout>

+ 1 - 0
app/src/main/res/values/color.xml

@@ -100,4 +100,5 @@
     <color name="menu_item_press">#DFDEDE</color>
 
     <color name="titleBlue">#BF2F95DD</color> <!-- 青蓝色 -->
+    <color name="me_menu_item_press">#DFDEDE</color>
 </resources>

+ 2 - 2
build.gradle

@@ -50,8 +50,8 @@ ext {
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 13,
-            versionName      : "v1.0.3"
+            versionCode      : 20,
+            versionName      : "v1.1.0"
     ]
 
     depsVersion = [