Ver Fonte

新增出库单界面,成品出库单列表

ChengJH há 2 anos atrás
pai
commit
c2cf544fb2

+ 251 - 0
app/src/main/java/com/uas/pda_smart_com_lg/bean/OutBoundListAddDalieBean.java

@@ -0,0 +1,251 @@
+package com.uas.pda_smart_com_lg.bean;
+
+/**
+ * Created by jsxiaoshui on 2022-10-17
+ */
+public class OutBoundListAddDalieBean {
+    private String PI_INOUTNO;
+    private String PD_PRODCODE;
+    private String PR_DETAIL;
+    private String PD_OUTQTY;
+    private String PD_PDNO;
+    private String PD_ORDERCODE;
+
+    private String PI_DEPARTMENTCODE;
+    private String PI_DEPARTMENTNAME;
+    private String PI_EMCODE;
+    private String PI_CCCODE;
+    private String PI_CCNAME;
+
+    private String PI_INVOSTATUSCODE;
+
+    private String PI_STATUSCODE;
+
+    private String PI_WHCODE;
+    private String PI_WHNAME;
+    private String PI_PURPOSE;
+    private String PI_PURPOSENAME;
+    private String PI_EMNAME;
+    private String PD_BARCODEQTY;
+    private String PD_WMPDNO;
+    private String PR_SPEC;
+    private String BAR_LOACTION;
+
+    private String BI_OUTQTY;
+    private String BI_PRODCODE;
+
+    public String getBI_OUTQTY() {
+        return BI_OUTQTY;
+    }
+
+    public void setBI_OUTQTY(String BI_OUTQTY) {
+        this.BI_OUTQTY = BI_OUTQTY;
+    }
+
+    public String getBI_PRODCODE() {
+        return BI_PRODCODE;
+    }
+
+    public void setBI_PRODCODE(String BI_PRODCODE) {
+        this.BI_PRODCODE = BI_PRODCODE;
+    }
+
+    public OutBoundListAddDalieBean(){
+
+    }
+
+    public OutBoundListAddDalieBean(String PI_INOUTNO, String PD_PRODCODE, String PR_DETAIL, String PD_OUTQTY, String PD_PDNO, String PD_ORDERCODE, String PI_DEPARTMENTCODE, String PI_DEPARTMENTNAME, String PI_EMCODE, String PI_CCCODE, String PI_CCNAME, String PI_INVOSTATUSCODE, String PI_STATUSCODE, String PI_EMNAME, String PD_BARCODEQTY) {
+        this.PD_PRODCODE = PD_PRODCODE;
+        this.PR_DETAIL = PR_DETAIL;
+        this.PD_OUTQTY = PD_OUTQTY;
+        this.PD_PDNO = PD_PDNO;
+        this.PD_ORDERCODE = PD_ORDERCODE;
+        this.PI_DEPARTMENTCODE = PI_DEPARTMENTCODE;
+        this.PI_DEPARTMENTNAME = PI_DEPARTMENTNAME;
+        this.PI_EMCODE = PI_EMCODE;
+        this.PI_CCCODE = PI_CCCODE;
+        this.PI_CCNAME = PI_CCNAME;
+        this.PI_INOUTNO=PI_INOUTNO;
+        this.PI_INVOSTATUSCODE=PI_INVOSTATUSCODE;
+        this.PI_STATUSCODE=PI_STATUSCODE;
+        this.PI_EMNAME=PI_EMNAME;
+        this.PD_BARCODEQTY=PD_BARCODEQTY;
+
+    }
+
+    public String getBAR_LOACTION() {
+        return BAR_LOACTION;
+    }
+
+    public void setBAR_LOACTION(String BAR_LOACTION) {
+        this.BAR_LOACTION = BAR_LOACTION;
+    }
+
+    public String getPR_SPEC() {
+        return PR_SPEC;
+    }
+
+    public void setPR_SPEC(String PR_SPEC) {
+        this.PR_SPEC = PR_SPEC;
+    }
+
+    public String getPD_WMPDNO() {
+        return PD_WMPDNO;
+    }
+
+    public void setPD_WMPDNO(String PD_WMPDNO) {
+        this.PD_WMPDNO = PD_WMPDNO;
+    }
+
+    public String getPD_BARCODEQTY() {
+        return PD_BARCODEQTY;
+    }
+
+    public void setPD_BARCODEQTY(String PD_BARCODEQTY) {
+        this.PD_BARCODEQTY = PD_BARCODEQTY;
+    }
+
+    public String getPI_EMNAME() {
+        return PI_EMNAME;
+    }
+
+    public void setPI_EMNAME(String PI_EMNAME) {
+        this.PI_EMNAME = PI_EMNAME;
+    }
+
+    public String getPI_WHCODE() {
+        return PI_WHCODE;
+    }
+
+    public void setPI_WHCODE(String PI_WHCODE) {
+        this.PI_WHCODE = PI_WHCODE;
+    }
+
+    public String getPI_WHNAME() {
+        return PI_WHNAME;
+    }
+
+    public void setPI_WHNAME(String PI_WHNAME) {
+        this.PI_WHNAME = PI_WHNAME;
+    }
+
+    public String getPI_PURPOSE() {
+        return PI_PURPOSE;
+    }
+
+    public void setPI_PURPOSE(String PI_PURPOSE) {
+        this.PI_PURPOSE = PI_PURPOSE;
+    }
+
+    public String getPI_PURPOSENAME() {
+        return PI_PURPOSENAME;
+    }
+
+    public void setPI_PURPOSENAME(String PI_PURPOSENAME) {
+        this.PI_PURPOSENAME = PI_PURPOSENAME;
+    }
+
+    public String getPI_STATUSCODE() {
+        return PI_STATUSCODE;
+    }
+
+    public void setPI_STATUSCODE(String PI_STATUSCODE) {
+        this.PI_STATUSCODE = PI_STATUSCODE;
+    }
+
+    public String getPI_INVOSTATUSCODE() {
+        return PI_INVOSTATUSCODE;
+    }
+
+    public void setPI_INVOSTATUSCODE(String PI_INVOSTATUSCODE) {
+        this.PI_INVOSTATUSCODE = PI_INVOSTATUSCODE;
+    }
+
+    public String getPI_INOUTNO() {
+        return PI_INOUTNO;
+    }
+
+    public void setPI_INOUTNO(String PI_INOUTNO) {
+        this.PI_INOUTNO = PI_INOUTNO;
+    }
+
+    public String getPD_PRODCODE() {
+        return PD_PRODCODE;
+    }
+
+    public void setPD_PRODCODE(String PD_PRODCODE) {
+        this.PD_PRODCODE = PD_PRODCODE;
+    }
+
+    public String getPR_DETAIL() {
+        return PR_DETAIL;
+    }
+
+    public void setPR_DETAIL(String PR_DETAIL) {
+        this.PR_DETAIL = PR_DETAIL;
+    }
+
+    public String getPD_OUTQTY() {
+        return PD_OUTQTY;
+    }
+
+    public void setPD_OUTQTY(String PD_OUTQTY) {
+        this.PD_OUTQTY = PD_OUTQTY;
+    }
+
+    public String getPD_PDNO() {
+        return PD_PDNO;
+    }
+
+    public void setPD_PDNO(String PD_PDNO) {
+        this.PD_PDNO = PD_PDNO;
+    }
+
+    public String getPD_ORDERCODE() {
+        return PD_ORDERCODE;
+    }
+
+    public void setPD_ORDERCODE(String PD_ORDERCODE) {
+        this.PD_ORDERCODE = PD_ORDERCODE;
+    }
+
+    public String getPI_DEPARTMENTCODE() {
+        return PI_DEPARTMENTCODE;
+    }
+
+    public void setPI_DEPARTMENTCODE(String PI_DEPARTMENTCODE) {
+        this.PI_DEPARTMENTCODE = PI_DEPARTMENTCODE;
+    }
+
+    public String getPI_DEPARTMENTNAME() {
+        return PI_DEPARTMENTNAME;
+    }
+
+    public void setPI_DEPARTMENTNAME(String PI_DEPARTMENTNAME) {
+        this.PI_DEPARTMENTNAME = PI_DEPARTMENTNAME;
+    }
+
+    public String getPI_EMCODE() {
+        return PI_EMCODE;
+    }
+
+    public void setPI_EMCODE(String PI_EMCODE) {
+        this.PI_EMCODE = PI_EMCODE;
+    }
+
+    public String getPI_CCCODE() {
+        return PI_CCCODE;
+    }
+
+    public void setPI_CCCODE(String PI_CCCODE) {
+        this.PI_CCCODE = PI_CCCODE;
+    }
+
+    public String getPI_CCNAME() {
+        return PI_CCNAME;
+    }
+
+    public void setPI_CCNAME(String PI_CCNAME) {
+        this.PI_CCNAME = PI_CCNAME;
+    }
+}

+ 72 - 5
app/src/main/java/com/uas/pda_smart_com_lg/fragment/IOCOutMakeMaterial.java

@@ -4,6 +4,7 @@ import android.content.Context;
 import android.content.DialogInterface;
 import android.graphics.drawable.BitmapDrawable;
 import android.os.Bundle;
+import android.support.v4.app.Fragment;
 import android.support.v7.app.AlertDialog;
 import android.text.Editable;
 import android.text.TextUtils;
@@ -39,6 +40,7 @@ import com.android.volley.toolbox.HttpHeaderParser;
 import com.android.volley.toolbox.JsonObjectRequest;
 import com.android.volley.toolbox.StringRequest;
 import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.activity.FunctionActivity;
 import com.uas.pda_smart_com_lg.application.PdaApplication;
 import com.uas.pda_smart_com_lg.bean.IOCOutMakeMaterialFuzzySearch;
 import com.uas.pda_smart_com_lg.bean.MaterialOutMessageBean;
@@ -51,6 +53,7 @@ import com.uas.pda_smart_com_lg.tools.SharedPreUtil;
 import com.uas.pda_smart_com_lg.tools.VolleyUtil;
 import com.uas.pda_smart_com_lg.util.CommonUtil;
 import com.uas.pda_smart_com_lg.util.Constants;
+import com.uas.pda_smart_com_lg.util.FragmentUtils;
 import com.uas.pda_smart_com_lg.util.JsonTools;
 import com.uas.pda_smart_com_lg.util.JsonUtils;
 import com.uas.pda_smart_com_lg.util.LogUtil;
@@ -79,7 +82,7 @@ import butterknife.OnClick;
 public class IOCOutMakeMaterial extends BaseFragment {
 
     private static String TAG = "IOCOutMakeMaterial";
-
+    private Button mMenuButton;
     @Bind(R.id.in_out_no)
     AutoCompleteTextView inOutNo;
     @Bind(R.id.clean_iv)
@@ -108,6 +111,9 @@ public class IOCOutMakeMaterial extends BaseFragment {
 
     private int mClickPosition = -1;
     private InputMethodManager mInputMethodManager;
+    private Button btn_add;
+    private PopupWindow mMenuPopupWindow;
+    private Fragment mFragment;
 
     @Override
     protected int getLayout() {
@@ -116,9 +122,12 @@ public class IOCOutMakeMaterial extends BaseFragment {
 
     @Override
     protected void initViews() {
+        ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
         ButterKnife.bind(this, root);
         mDbManager = new DBManager(getActivity());
         ((TextView) (getActivity().findViewById(R.id.tv_actionbar_withback))).setText("出库单");
+        btn_add = root.findViewById(R.id.btn_add);
+        mMenuButton = (Button) mActivity.findViewById(R.id.btn_actionbar_more);
 
         //弹出软键盘
         mInputMethodManager = (InputMethodManager) root.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -142,13 +151,21 @@ public class IOCOutMakeMaterial extends BaseFragment {
             if (CommonUtil.isNetWorkConnected(mActivity))
                 refreshMaterialStatus();
         }
-
+        initPopupWindow2();
 
     }
 
     @Override
     protected void initEvents() {
+        //新增
+        mMenuButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                CommonUtil.setBackgroundAlpha(getActivity(), 0.5f);
+                mMenuPopupWindow.showAsDropDown(mMenuButton);
 
+            }
+        });
         listInOut.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
@@ -267,7 +284,49 @@ public class IOCOutMakeMaterial extends BaseFragment {
     protected void initDatas() {
 
     }
+    private void initPopupWindow2() {
+        View view = View.inflate(getActivity(), R.layout.pop_storage_recharge_menu, null);
+
+        Button doneButton = (Button) view.findViewById(R.id.pop_storage_recharge_menu_1);
+        Button todoButton = (Button) view.findViewById(R.id.pop_storage_recharge_menu_2);
+        doneButton.setText("新增");
+        todoButton.setText("列表");
+        mFragment = new StorageRechargeListFragment();
+
+        doneButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                OutboundListAdd_Fragment mfragment=new OutboundListAdd_Fragment();
+                FragmentUtils.switchFragment(IOCOutMakeMaterial.this, mfragment);
+            }
+        });
+
+        todoButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeMenuPopupWindow();
+                OutAddList_fragment mfragment=new OutAddList_fragment();
+                FragmentUtils.switchFragment(IOCOutMakeMaterial.this, mfragment);
+            }
+        });
+
+        mMenuPopupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        mMenuPopupWindow.setBackgroundDrawable(new BitmapDrawable());
+        mMenuPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                closeMenuPopupWindow();
+            }
+        });
+    }
 
+    private void closeMenuPopupWindow() {
+        if (mMenuPopupWindow != null) {
+            mMenuPopupWindow.dismiss();
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+    }
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         return false;
@@ -1085,8 +1144,7 @@ public class IOCOutMakeMaterial extends BaseFragment {
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
             MaterialOutMessageBean.DataBean data = getItem(position);
-            convertView = LayoutInflater.from(getContext()).inflate(resourceId,
-                    null);
+            convertView = LayoutInflater.from(getContext()).inflate(resourceId, null);
             ((TextView) convertView.findViewById(R.id.tv_pi_in_out_no)).setText(data.getPI_INOUTNO());
             ((TextView) convertView.findViewById(R.id.tv_pi_class)).setText(data.getPI_CLASS());
             ((TextView) convertView.findViewById(R.id.tv_pd_wh_code)).setText(data.getPD_WHCODE());
@@ -1149,5 +1207,14 @@ public class IOCOutMakeMaterial extends BaseFragment {
 
 
     }
-
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (hidden) {
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+        } else {
+            FunctionActivity.setTitle("出库单");
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
+        }
+    }
 }

+ 358 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/OutAddList_fragment.java

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

+ 673 - 0
app/src/main/java/com/uas/pda_smart_com_lg/fragment/OutboundListAdd_Fragment.java

@@ -0,0 +1,673 @@
+package com.uas.pda_smart_com_lg.fragment;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.support.v4.content.ContextCompat;
+import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.android.volley.Request;
+import com.bin.david.form.core.SmartTable;
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.CellInfo;
+import com.bin.david.form.data.column.Column;
+import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
+import com.bin.david.form.data.style.FontStyle;
+import com.bin.david.form.data.table.TableData;
+import com.bin.david.form.listener.OnColumnItemClickListener;
+import com.uas.pda_smart_com_lg.R;
+import com.uas.pda_smart_com_lg.activity.FunctionActivity;
+import com.uas.pda_smart_com_lg.bean.OutBoundListAddDalieBean;
+import com.uas.pda_smart_com_lg.global.GloableParams;
+import com.uas.pda_smart_com_lg.listener.MyEditorActionListener;
+import com.uas.pda_smart_com_lg.tools.SharedPreUtil;
+import com.uas.pda_smart_com_lg.util.CameraUtil;
+import com.uas.pda_smart_com_lg.util.CommonUtil;
+import com.uas.pda_smart_com_lg.util.Constants;
+import com.uas.pda_smart_com_lg.util.FastjsonUtil;
+import com.uas.pda_smart_com_lg.util.HttpCallback;
+import com.uas.pda_smart_com_lg.util.HttpParams;
+import com.uas.pda_smart_com_lg.util.StringUtil;
+import com.uas.pda_smart_com_lg.util.VolleyRequest;
+import com.uas.pda_smart_com_lg.view.ClearableEditText;
+import com.uuzuche.lib_zxing.activity.CaptureActivity;
+import com.uuzuche.lib_zxing.activity.CodeUtils;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import razerdp.basepopup.BasePopupWindow;
+
+/**
+ * Created by cjh on 2022-10-09
+ */
+public class OutboundListAdd_Fragment extends BaseFragment implements OnColumnItemClickListener<String>, View.OnClickListener {
+
+    private ClearableEditText storage_recharge_collect_ets;
+    private ImageView storage_recharge_scan_ivs;
+    private SmartTable mSmartTable;
+    private TextView tv_documents_code;
+    private static final int SCAN_BARCODE_CODE = 111;
+    private int mFocusId;
+    private Column<String> va_detnoColumn,va_Pd_wmpdnoCoulmn,va_pucodeCoulmn,va_prodcodeColumn,va_qtyColumn,va_codeColumn,va_detailColumn,va_pr_specColumn,va_bar_loactioncColumn;
+    private TableData<OutBoundListAddDalieBean> mTableData;
+    private List<OutBoundListAddDalieBean> mFilterStorageInBeans;
+    private String va_ids;
+    private CheckBox add_checkbos;
+    private Button jlt_storage_in_generate_detailed_btn;
+    private CheckBox ck_special_outbound;
+
+    private ClearableEditText edit_et;
+    private PopupWindow editPW;
+    private String bar_remain;
+    private String pi_status;
+    private InputMethodManager imm;
+    private boolean ischeck=false;
+    private Double pd_barcodeqtyDouble;
+    private Double pd_outqtyDouble;
+    private Double numberDouble;
+    private Integer integer;
+    private String pi_classs;
+    private PopupWindow mMenuPopupWindow;
+    private ImageView mMoreButton;
+    private View mMenuView;
+    private String pi_inoutno;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_outboundlistadd;
+    }
+
+    @Override
+    protected void initViews() {
+        FunctionActivity.setTitle(getString(R.string.title_outbound_rechargeadd));
+        ((FunctionActivity) getActivity()).setListIconIvVisible(false);
+        mMoreButton = (ImageView) getActivity().findViewById(R.id.btn_actionbar_list_icon_iv);
+        storage_recharge_collect_ets = mActivity.findViewById(R.id.storage_recharge_collect_ets);
+        storage_recharge_scan_ivs = mActivity.findViewById(R.id.storage_recharge_scan_ivs);
+        tv_documents_code = mActivity.findViewById(R.id.tv_documents_code);
+        mSmartTable = mActivity.findViewById(R.id.jlt_storage_in_filter_list_sts);
+        add_checkbos = mActivity.findViewById(R.id.add_checkbos);
+        jlt_storage_in_generate_detailed_btn = mActivity.findViewById(R.id.jlt_storage_in_generate_detailed_btn);
+        ck_special_outbound = mActivity.findViewById(R.id.ck_special_outbound);
+
+        imm = (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
+    }
+
+    @Override
+    protected void initEvents() {
+        Bundle arguments = getArguments();
+        if (arguments != null) {
+            pi_inoutno = arguments.getString("pi_inoutno");
+        }
+        if (!TextUtils.isEmpty(pi_inoutno)) {
+            tv_documents_code.setText(pi_inoutno);
+            getDataCommitList();
+        }
+
+
+        SharedPreUtil.removeString(mActivity,Constants.STORAGEERECHADD);
+        storage_recharge_scan_ivs.setOnClickListener(this);
+        jlt_storage_in_generate_detailed_btn.setOnClickListener(this);
+        mMoreButton.setOnClickListener(this);
+        storage_recharge_collect_ets.requestFocus();
+        storage_recharge_collect_ets.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+                if (actionId == EditorInfo.IME_ACTION_DONE
+                        || actionId == EditorInfo.IME_ACTION_SEND
+                        || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
+                    String data = storage_recharge_collect_ets.getText().toString().trim();
+                    storage_recharge_collect_ets.selectAll();
+                    storage_recharge_collect_ets.requestFocus();
+                    imm.showSoftInput(storage_recharge_collect_ets, InputMethodManager.RESULT_HIDDEN);
+                    getDatalistCodes(data);
+                    return true;
+                }
+                return false;
+            }
+        });
+
+        add_checkbos.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (isChecked==true){
+                    ck_special_outbound.setChecked(false);
+                }
+            }
+        });
+        ck_special_outbound.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (isChecked==true){
+                    add_checkbos.setChecked(false);
+                }
+            }
+        });
+
+        mFilterStorageInBeans = Collections.synchronizedList(new ArrayList<>());
+        va_detnoColumn = new Column<String>("出库数量", "BI_OUTQTY");
+        va_detnoColumn.setFixed(true);
+        va_Pd_wmpdnoCoulmn = new Column<String>("料号", "BI_PRODCODE");
+        va_pucodeCoulmn = new Column<String>("物料名称", "PR_DETAIL");
+;
+    }
+    @Override
+    protected void initDatas() {
+        WindowManager wm = mActivity.getWindowManager();
+        int screenWith = wm.getDefaultDisplay().getWidth();
+        mSmartTable.getConfig().setMinTableWidth(screenWith)
+                .setShowXSequence(false)
+                .setShowYSequence(false)
+                .setShowTableTitle(false)
+                .setFixedTitle(true)
+                .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
+                .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
+                .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
+                .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                    @Override
+                    public int getBackGroundColor(CellInfo cellInfo) {
+
+                        if (cellInfo.row  == 0) {
+                            return ContextCompat.getColor(mActivity, R.color.text_blue);
+
+                        }
+                        return TableConfig.INVALID_COLOR;
+                    }
+                });
+
+
+
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+    /**
+     * 请求条码第一次
+     * @param data
+     */
+    private void getDatalistCodes(String data) {
+        progressDialog.show();
+
+        String ifcancel;
+        if (add_checkbos.isChecked()==true){
+            ifcancel="true";
+        }else {
+
+            ifcancel="false";
+        }
+        String ifspecial;
+        if (ck_special_outbound.isChecked()==true){
+            ifspecial="true";
+        }else {
+            ifspecial="false";
+        }
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_ADD_OUTBOUNDLIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("barcode", data)
+                .addParam("inoutno", tv_documents_code.getText().toString().trim())
+                .addParam("ifspecial",ifspecial)//是否勾选了特殊出库
+                .addParam("ifcancel",ifcancel)//是否勾选了取消采集
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                String result = o.toString();
+                JSONObject resultObject = JSON.parseObject(result);
+                JSONObject dataObject = resultObject.getJSONObject("data");
+                if (dataObject != null) {
+                    bar_remain = FastjsonUtil.getText(dataObject, "pi_inoutno");
+//                    if (!add_checkbos.isChecked()){
+//                        initEditPopupWindow();
+//                    }
+
+                    if (!tv_documents_code.getText().toString().trim().isEmpty()){
+                        getDataCommitList();
+                        if (add_checkbos.isChecked()==true){
+                            CommonUtil.toastNoRepeat(mActivity,"取消成功");
+                        }else {
+                            CommonUtil.toastNoRepeat(mActivity,"采集成功");
+                        }
+                    }else {
+                        tv_documents_code.setText(bar_remain);
+                    }
+
+                }
+
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+
+            }
+        });
+        storage_recharge_collect_ets.selectAll();
+        storage_recharge_collect_ets.requestFocus();
+        imm.showSoftInput(storage_recharge_collect_ets, InputMethodManager.RESULT_HIDDEN);
+    }
+
+    /**
+     * 弹框保存按钮
+     */
+
+    //弹窗
+    private void initEditPopupWindow() {
+        View contView = LayoutInflater.from(mActivity).inflate(R.layout.index_edit_pup, null);
+        edit_et = (ClearableEditText) contView.findViewById(R.id.edit_et);
+        TextView sure_tv = (TextView) contView.findViewById(R.id.sure_tv);
+        TextView cancle_tv = (TextView) contView.findViewById(R.id.cancle_tv);
+        ImageView search_im = contView.findViewById(R.id.search_im);
+        edit_et.setText(bar_remain);
+        editPW = new PopupWindow(contView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        editPW.setTouchable(true);
+        editPW.setBackgroundDrawable(new BitmapDrawable());
+        editPW.setOnDismissListener(new BasePopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                closeListPopupWindow();
+            }
+        });
+        View parentView = mActivity.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
+
+        editPW.showAtLocation(parentView, Gravity.CENTER, 0, 0);
+        CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
+
+        sure_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String code = edit_et.getText().toString().trim();
+                getDialogDatalistCodes(storage_recharge_collect_ets.getText().toString().trim(),code);
+                closeListPopupWindow();
+            }
+        });
+
+        CommonUtil.setEditorActionListener(edit_et, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                String code = edit_et.getText().toString().trim();
+                getDialogDatalistCodes(storage_recharge_collect_ets.getText().toString().trim(),code);
+            }
+        });
+        cancle_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                closeListPopupWindow();
+            }
+        });
+
+
+    }
+    private void closeListPopupWindow() {
+        if (editPW != null) {
+            editPW.dismiss();
+            editPW = null;
+            CommonUtil.setBackgroundAlpha(mActivity, 1f);
+        }
+
+    }
+
+    private void getDialogDatalistCodes(String data,String number) {
+        String pd_pdnoid = SharedPreUtil.getString(mActivity, "positionid", null);
+
+            if (!StringUtil.isEmpty(pd_pdnoid)){
+                integer = Integer.valueOf(pd_pdnoid);
+                String pd_barcodeqty = mFilterStorageInBeans.get(integer).getPD_BARCODEQTY();//条码数量
+                String pd_outqty = mFilterStorageInBeans.get(integer).getPD_OUTQTY();//数量
+                if (pd_barcodeqty.isEmpty()){
+                    pd_barcodeqtyDouble=0.0;
+                }else {
+                    pd_barcodeqtyDouble = Double.valueOf(pd_barcodeqty);
+                }
+                if (pd_outqty.isEmpty()){
+                    pd_outqtyDouble=0.0;
+                }else {
+                    pd_outqtyDouble = Double.valueOf(pd_outqty);
+                }
+                if (number.isEmpty()){
+                    numberDouble = 0.0;
+                }else {
+                    numberDouble = Double.valueOf(number);
+                }
+                double v = pd_barcodeqtyDouble + numberDouble;
+                if (add_checkbos.isChecked()==true){
+                    baoucn(data,number);
+                }else {
+                    if (pd_barcodeqtyDouble > pd_outqtyDouble||pd_barcodeqtyDouble + numberDouble > pd_outqtyDouble){
+                    dialosDatas(data,number,v, pd_outqtyDouble);
+                }else {
+                    baoucn(data,number);
+                }
+             }
+
+            }
+    }
+    //保存
+    public void baoucn(String data,String number){
+        String positionid = SharedPreUtil.getString(mActivity, "pd_pdnoid", null);
+        String pd_wmpdno = SharedPreUtil.getString(mActivity, "pd_wmpdno", null);
+        progressDialog.show();
+        String out_editorcodes = SharedPreUtil.getString(mActivity, "out_editorcodes", null);
+        String ifcancel;
+        if (add_checkbos.isChecked()==true){
+            ifcancel="true";
+        }else {
+            ifcancel="false";
+        }
+        String string_va_id = SharedPreUtil.getString(mActivity, Constants.STORAGEERECHADD, null);
+        if (!StringUtil.isEmpty(va_ids)){
+            string_va_id=va_ids;
+        }
+
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_SAVE_OUTBOUNDLIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "getindatalist")
+                .flag(0)
+                .addParam("barcode", out_editorcodes)
+                .addParam("pi_id", string_va_id)
+                .addParam("ifcancel",ifcancel)//是否勾选了取消采集
+                .addParam("remain",number)//手动输入的数
+                .addParam("pd_pdno",positionid)//明细序号
+                .addParam("pd_wmpdno",pd_wmpdno)
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                String result = o.toString();
+                JSONObject resultObject = JSON.parseObject(result);
+                JSONObject dataObject = resultObject.getJSONObject("data");
+                if (dataObject != null) {
+                    //单据编号
+                    String pi_inoutno = FastjsonUtil.getText(dataObject, "pi_inoutno");
+                    String va_id = FastjsonUtil.getText(dataObject, "pi_id");
+                    SharedPreUtil.saveString(mActivity, Constants.STORAGEERECHADD, va_id);
+
+                    tv_documents_code.setText(pi_inoutno);
+                }
+                getDataCommitList();
+                if (add_checkbos.isChecked()==true){
+                    CommonUtil.toastNoRepeat(mActivity,"取消成功");
+                }else {
+                    CommonUtil.toastNoRepeat(mActivity,"采集成功");
+                }
+
+            }
+
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+
+            }
+        });
+    }
+
+
+    public void dialosDatas(String data,String number,Double v,Double pd_outqtyDouble){
+        new AlertDialog.Builder(getActivity()).setTitle("提示").setMessage("本次条码数量:"+v+"大于出库数量:"+pd_outqtyDouble)
+                .setPositiveButton(getString(R.string.confirm), new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        baoucn(data,number);
+
+                    }
+                }).setNegativeButton(getString(R.string.cancel), null).create().show();
+    }
+    //生成明细数据
+    private void getDataadCommitList(){
+        if (tv_documents_code.getText().toString().isEmpty()){
+            return;
+        }
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_DETAIL_OUTBOUNDLIST)
+                .method(Request.Method.GET)
+                .tag(TAG + "datalist")
+                .flag(0)
+                .addParam("inoutno",tv_documents_code.getText().toString().trim())
+                .build(), new HttpCallback() {
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                getDataCommitList();
+            }
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                getDataCommitList();
+            }
+        });
+    }
+
+
+    //展示明细数据
+    private void getDataCommitList(){
+        if (tv_documents_code.getText().toString().isEmpty()){
+            return;
+        }
+        progressDialog.show();
+        String string_va_ids = SharedPreUtil.getString(mActivity, Constants.STORAGEERECHADD, null);
+        if (!StringUtil.isEmpty(va_ids)){
+            string_va_ids=va_ids;
+        }
+        VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                .url(GloableParams.ADDRESS_DOCUMENTLIBRARY_DETAIL_OUTBOUNDLISTS)
+                .method(Request.Method.GET)
+                .tag(TAG + "datalist")
+                .flag(0)
+                .addParam("inoutno",tv_documents_code.getText().toString().trim())
+                .build(), new HttpCallback() {
+
+
+            @Override
+            public void onSuccess(int flag, Object o) throws Exception {
+                progressDialog.dismiss();
+                try {
+                    mFilterStorageInBeans.clear();
+                    String result = o.toString();
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray dataArray = resultObject.getJSONArray("data");
+                    List<OutBoundListAddDalieBean> list = new ArrayList<>();
+                    list.clear();
+                    if (dataArray != null && dataArray.size() > 0) {
+                        for (int i = 0; i < dataArray.size(); i++) {
+                            JSONObject dataObject = dataArray.getJSONObject(i);
+                            if (dataObject != null) {
+                                OutBoundListAddDalieBean jltStorageInBean = new OutBoundListAddDalieBean();
+                                jltStorageInBean.setBI_OUTQTY(FastjsonUtil.getText(dataObject, "BI_OUTQTY"));
+                                jltStorageInBean.setBI_PRODCODE(FastjsonUtil.getText(dataObject, "BI_PRODCODE"));
+                                jltStorageInBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
+                                list.add(jltStorageInBean);
+                            }
+                        }
+
+                    }
+//                    mFilterStorageInBeans = list;
+
+                    mFilterStorageInBeans = list;//PI_INOUTNO
+                    setFilterTableData(mFilterStorageInBeans);
+                    progressDialog.dismiss();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    progressDialog.dismiss();
+                }
+            }
+            @Override
+            public void onFail(int flag, String failStr) throws Exception {
+                progressDialog.dismiss();
+                setFilterTableData(new ArrayList<>());
+                CommonUtil.toastNoRepeat(mActivity, failStr);
+                setFilterTableData(mFilterStorageInBeans);
+            }
+        });
+        progressDialog.dismiss();
+    }
+
+
+    @Override
+    public void onStop() {
+        super.onStop();
+    }
+
+
+    private void setFilterTableData(List<OutBoundListAddDalieBean> filterTableData) {
+        mTableData = new TableData<OutBoundListAddDalieBean>("列表", filterTableData,
+                va_detnoColumn,va_Pd_wmpdnoCoulmn,va_pucodeCoulmn);
+        mSmartTable.setTableData(mTableData);
+//        mSmartTable.requestLayout();
+        mSmartTable.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mSmartTable.postInvalidate();
+            }
+        }, 100);
+
+    }
+
+
+
+
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.storage_recharge_scan_ivs:
+                if (CameraUtil.hasCamera()) {
+                    if (root.findFocus() != null) {
+                        mFocusId = root.findFocus().getId();
+                        Intent intent = new Intent();
+                        intent.setClass(mActivity, CaptureActivity.class);
+                        startActivityForResult(intent, SCAN_BARCODE_CODE);
+                    } else {
+                        CommonUtil.toastNoRepeat(mActivity, "请选择您要操作的输入框");
+                    }
+                } else {
+                    CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
+                }
+                break;
+            case R.id.jlt_storage_in_generate_detailed_btn://生成明细
+                getDataadCommitList();
+                break;
+            }
+        }
+
+
+        @Override
+        public void onClick (Column < String > column, String value, String s,int position){
+            String pd_pdno = mFilterStorageInBeans.get(position).getPD_PDNO();
+            String pd_wmpdno = mFilterStorageInBeans.get(position).getPD_WMPDNO();
+
+                SharedPreUtil.saveString(mActivity,"positionid",position+"");
+                SharedPreUtil.saveString(mActivity,"pd_pdnoid",pd_pdno+"");
+                SharedPreUtil.saveString(mActivity,"pd_wmpdno",pd_wmpdno+"");
+
+
+
+                mSmartTable.getConfig()
+                        .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
+                            @Override
+                            public int getBackGroundColor(CellInfo cellInfo) {
+                                if (cellInfo.row  == position) {
+                                    ischeck=false;
+                                    if (ischeck==false){
+                                        return ContextCompat.getColor(mActivity, R.color.text_blue);
+                                    }
+
+                                }
+                                return TableConfig.INVALID_COLOR;
+                            }
+                        });
+//            }
+
+                mSmartTable.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        mSmartTable.postInvalidate();
+                    }
+                }, 100);
+
+        }
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+            if (requestCode == SCAN_BARCODE_CODE && data != null) {
+                if (data.getExtras() != null) {
+                    String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
+                    SharedPreUtil.saveString(mActivity,"out_editorcodes",result);
+                    if (mFocusId == R.id.storage_recharge_collect_ets) {
+                        storage_recharge_collect_ets.setText(result);
+                        storage_recharge_collect_ets.setSelection(result.length());
+                        storage_recharge_collect_ets.selectAll();
+                        storage_recharge_collect_ets.requestFocus();
+                        imm.showSoftInput(storage_recharge_collect_ets, InputMethodManager.RESULT_HIDDEN);
+                        getDatalistCodes(result);
+                    }
+                }
+            }
+
+
+    }
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+        CommonUtil.closeKeybord(storage_recharge_collect_ets, mActivity);
+        ((TextView) (getActivity().findViewById(R.id.tv_actionbar_withback))).setText(getString(R.string.title_outbound_rechargeadd));
+        SharedPreUtil.removeString(mActivity,Constants.STORAGEERECHADD);
+    }
+    @Override
+    public void onHiddenChanged(boolean hidden) {
+        super.onHiddenChanged(hidden);
+        if (hidden) {
+            ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
+        } else {
+            FunctionActivity.setTitle(getString(R.string.title_outbound_rechargeadd));
+
+        }
+    }
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+
+    }
+}

+ 16 - 6
app/src/main/java/com/uas/pda_smart_com_lg/global/GloableParams.java

@@ -248,9 +248,10 @@ public class GloableParams {
     public static String ADDRESS_DOCUMENTLIBRARY_MAKEINWARHOUSE;
     public static String ADDRESS_DOCUMENTLIBRARY_OUTBOUNDLIST;
     public static String ADDRESS_DOCUMENTLIBRARY_MAKEOUTWARHOUSE;
-
-
-
+    public static String ADDRESS_DOCUMENTLIBRARY_ADD_OUTBOUNDLIST;
+    public static String ADDRESS_DOCUMENTLIBRARY_DETAIL_OUTBOUNDLISTS;
+    public static String ADDRESS_DOCUMENTLIBRARY_DETAIL_OUTBOUNDLIST;
+    public static String ADDRESS_DOCUMENTLIBRARY_SAVE_OUTBOUNDLIST;
 
     //连接服务器请求地址
     private static final String ADDRESSTAIL_CONNECT_SERVER = "/api/pda/getAllMasters.action";
@@ -607,9 +608,15 @@ public class GloableParams {
     //出库单列表
     private static String ADDRESSTAIL_OUTBOUNDLIST = "/api/pda/receiving/getOutDataList.action";
     private static final String ADDRESSTAIL_MAKEOUTWARHOUSE = "/api/pda/receiving/makeOutWarhouse.action";
+    //    新增出库单
+    private static String ADDRESSTAIL_ADD_OUTBOUNDLIST = "/api/pda/outMaterial/saveBarcodeio.action";
+//    private static String ADDRESSTAIL_ADD_OUTBOUNDLIST = "/api/pda/outMaterial/checkBarcode.action";
+    //出货单明细
+    private static String ADDRESSTAIL_DETAIL_OUTBOUNDLISTS = "/api/pda/outMaterial/getProdinout.action";
+    private static String ADDRESSTAIL_DETAIL_OUTBOUNDLIST = "/api/pda/outMaterial/genProdiodetail.action";
 
-
-
+    //保存
+    private static String ADDRESSTAIL_SAVVE_OUTBOUNDLIST = "/api/pda/outMaterial/saveProdBarcodeio.action";
 
     /**
      * 完工品入库
@@ -1094,7 +1101,10 @@ public class GloableParams {
         GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKEINWARHOUSE= uriHead + GloableParams.ADDRESSTAIL_MAKEINWARHOUSE;
         GloableParams.ADDRESS_DOCUMENTLIBRARY_OUTBOUNDLIST= uriHead + GloableParams.ADDRESSTAIL_OUTBOUNDLIST;
         GloableParams.ADDRESS_DOCUMENTLIBRARY_MAKEOUTWARHOUSE= uriHead + GloableParams.ADDRESSTAIL_MAKEOUTWARHOUSE;
-
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_ADD_OUTBOUNDLIST= uriHead + GloableParams.ADDRESSTAIL_ADD_OUTBOUNDLIST;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_DETAIL_OUTBOUNDLISTS= uriHead + GloableParams.ADDRESSTAIL_DETAIL_OUTBOUNDLISTS;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_DETAIL_OUTBOUNDLIST= uriHead + GloableParams.ADDRESSTAIL_DETAIL_OUTBOUNDLIST;
+        GloableParams.ADDRESS_DOCUMENTLIBRARY_SAVE_OUTBOUNDLIST= uriHead + GloableParams.ADDRESSTAIL_SAVVE_OUTBOUNDLIST;
 
 
 

+ 4 - 1
app/src/main/java/com/uas/pda_smart_com_lg/util/Constants.java

@@ -43,7 +43,10 @@ public interface Constants {
         //下载进度
         int DOWNLOAD_PROGRESS = 13;
     }
-
+    /**
+     * 新增收料单列表
+     */
+    String STORAGEERECHADD ="add_codes";
     /**
      * 正则表达式
      */

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

@@ -27,7 +27,15 @@
         android:layout_weight="1"
         android:orientation="vertical"
         android:padding="@dimen/padding_normal">
-
+        <Button
+            android:visibility="gone"
+            android:id="@+id/btn_add"
+            android:layout_width="wrap_content"
+            android:layout_height="35dp"
+            android:background="@drawable/shape_from_edit"
+            android:textColor="@color/blue"
+            android:layout_marginLeft="6dp"
+            android:text="新增" />
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"

+ 140 - 0
app/src/main/res/layout/fragment_outboundlistadd.xml

@@ -0,0 +1,140 @@
+<?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"
+    android:background="@color/white">
+
+
+    <LinearLayout
+        android:paddingLeft="@dimen/dp_10"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:layout_gravity="center"
+            android:layout_weight="1"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@drawable/bg_line_edittext">
+
+<!--            <com.uas.uas_mes_zb_p.view.ClearableEditText-->
+<!--                android:id="@+id/storage_recharge_collect_ets"-->
+<!--                style="@style/EditTextStyle"-->
+<!--                android:layout_weight="1"-->
+<!--                android:background="@null"-->
+<!--                android:focusable="true"-->
+<!--                android:lines="1"-->
+<!--                android:focusableInTouchMode="true"-->
+<!--                android:hint="请采集单号"-->
+<!--                android:imeOptions="actionSend"-->
+<!--                android:textColor="@color/black" />-->
+            <com.uas.pda_smart_com_lg.view.ClearableEditText
+                android:id="@+id/storage_recharge_collect_ets"
+                style="@style/EditTextStyle"
+                android:layout_weight="1"
+                android:background="@null"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
+                android:hint="请采集条码"
+                android:imeOptions="actionSend"
+                android:textColor="@color/black" />
+
+            <ImageView
+                android:id="@+id/storage_recharge_scan_ivs"
+                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
+            android:layout_gravity="center"
+            android:background="@color/white"
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content">
+            <CheckBox
+                android:layout_gravity="center"
+                android:id="@+id/add_checkbos"
+                android:text="取消采集"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content">
+            </CheckBox>
+            <CheckBox
+                android:layout_gravity="center"
+                android:id="@+id/ck_special_outbound"
+                android:text="特殊出库"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content">
+            </CheckBox>
+        </LinearLayout>
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:background="@color/white"
+        android:padding="5dp">
+
+        <LinearLayout
+            android:background="@color/white"
+            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" />
+            <TextView
+                android:id="@+id/tv_documents_code"
+                style="@style/tl_tv_style"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:minWidth="60dp"
+                android:text=""
+                android:textColor="@color/body_text_1"
+                android:textSize="16sp" />
+
+        </LinearLayout>
+
+
+        <com.bin.david.form.core.SmartTable
+            android:layout_marginTop="@dimen/textsize_20"
+            android:layout_marginBottom="@dimen/textsize_20"
+            android:id="@+id/jlt_storage_in_filter_list_sts"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+    </LinearLayout>
+
+
+
+    <LinearLayout
+        android:background="@color/white"
+        android:paddingLeft="@dimen/sp_16"
+        android:paddingRight="@dimen/sp_16"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <Button
+            android:id="@+id/jlt_storage_in_generate_detailed_btn"
+            style="@style/ButtonStyle"
+            android:layout_width="0dp"
+            android:layout_margin="5dp"
+            android:layout_weight="1"
+            android:text="生成明细"
+            />
+
+    </LinearLayout>
+
+</LinearLayout>

+ 75 - 0
app/src/main/res/layout/index_edit_pup.xml

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_margin="12dp"
+    android:background="@color/background"
+    android:orientation="vertical">
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:padding="14dp"
+        android:text="数量" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="36dp"
+        android:background="@color/white"
+        android:orientation="horizontal">
+
+        <com.uas.pda_smart_com_lg.view.ClearableEditText
+            android:id="@+id/edit_et"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="16dp"
+            android:layout_marginRight="16dp"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="center_vertical"
+            android:hint="请输入数量"
+            android:singleLine="true"
+            android:numeric="decimal"
+            android:padding="5dp"
+            android:textSize="14sp" />
+
+        <ImageView
+            android:visibility="gone"
+            android:id="@+id/search_im"
+            android:layout_width="46dp"
+            android:layout_height="match_parent"
+            android:layout_marginRight="10dp"
+            android:background="@drawable/bg_button"
+            android:src="@drawable/search_48" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="10dp">
+
+        <Button
+            android:id="@+id/sure_tv"
+            android:layout_width="0dp"
+            android:layout_height="36dp"
+            android:layout_margin="12dp"
+            android:layout_weight="1"
+            android:background="@drawable/selector_confirm_bg"
+            android:gravity="center"
+            android:text="保存"
+            android:textColor="@color/white" />
+
+        <Button
+            android:id="@+id/cancle_tv"
+            android:layout_width="0dp"
+            android:layout_height="36dp"
+            android:layout_margin="12dp"
+            android:layout_weight="1"
+            android:background="@drawable/selector_cancel_bg"
+            android:gravity="center"
+            android:text="取消"
+            android:textColor="@color/selector_cancel_text_color" />
+    </LinearLayout>
+</LinearLayout>

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

@@ -423,6 +423,7 @@
     <string name="title_storage_iqc">IQC入库</string>
     <string name="title_storage_recharge">收料</string>
     <string name="outboundlist">成品出库单列表</string>
+    <string name="title_outbound_rechargeadd">新增出库单</string>
     <string-array name="material_collect_menu">
         <item>已采集列表</item>
         <item>未采集明细</item>

+ 2 - 2
build.gradle

@@ -43,8 +43,8 @@ ext {
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 24,
-            versionName      : "v2.3.1"
+            versionCode      : 25,
+            versionName      : "v2.3.2"
     ]
 
     depsVersion = [