فهرست منبع

增加AGV相关功能

songw 8 ماه پیش
والد
کامیت
fb1384bb7f

+ 1 - 1
app/build.gradle

@@ -41,7 +41,7 @@ android {
             if (outputFile != null && outputFile.name.endsWith('.apk')) {
                 if (variant.buildType.name.equals('release')) {
                     def releaseInfo = getVersionName()
-                    fileName = "bgdq_RELEASE_${releaseInfo}.apk"
+                    fileName = "百岗_RELEASE_${releaseInfo}.apk"
 
                 } else if (variant.buildType.name.equals('debug')) {
                     def debugInfo = getVersionName()

+ 66 - 0
app/src/main/java/com/uas/bgdq/adapter/AGVItemNumberAdapter.java

@@ -0,0 +1,66 @@
+package com.uas.bgdq.adapter;
+
+import android.support.annotation.Nullable;
+import android.widget.CompoundButton;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.uas.bgdq.R;
+import com.uas.bgdq.bean.AGVItemnumberBean;
+
+import java.util.List;
+
+
+/**
+ * Created by cjh-sail on 2024-04-02
+ */
+public class AGVItemNumberAdapter extends BaseQuickAdapter<AGVItemnumberBean, BaseViewHolder> {
+
+    private List<AGVItemnumberBean> mmmmList;
+
+    public List<AGVItemnumberBean> getmList() {
+        return mmmmList;
+    }
+
+    public void setmList(List<AGVItemnumberBean> mList) {
+        this.mmmmList = mList;
+    }
+
+    public AGVItemnumberBean getBeanByPositon(int position) {
+        return mmmmList.get(position);
+    }
+
+    public AGVItemNumberAdapter(@Nullable List<AGVItemnumberBean> data) {
+        super(R.layout.item_agv_item_number, data);
+        this.mmmmList = data;
+    }
+
+    @Override
+    protected void convert(BaseViewHolder helper, AGVItemnumberBean item) {
+        helper.setText(R.id.tv_barcode_value, String.valueOf(item.getBAR_CODE()));
+        helper.setText(R.id.tv_bar_remain_value, String.valueOf(item.getBAR_REMAIN()));
+        helper.setText(R.id.tv_bar_location_value, String.valueOf(item.getBAR_LOCATION()));
+        helper.setChecked(R.id.cb_select, item.isSelect());
+        helper.setOnCheckedChangeListener(R.id.cb_select, new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (buttonView.isPressed()) {   //只有当用户主动点击时才处理选中状态变化
+                    if (onSetCheckedChanged != null) {
+                        int adapterPosition = helper.getAdapterPosition();
+                        onSetCheckedChanged.onChanged(isChecked,adapterPosition);
+                    }
+                }
+            }
+        });
+    }
+
+    public OnSetCheckedChanged onSetCheckedChanged;
+
+    public void setOnSetCheckedChanged(OnSetCheckedChanged onSetCheckedChanged){
+        this.onSetCheckedChanged = onSetCheckedChanged;
+    }
+
+    public interface OnSetCheckedChanged{
+        void onChanged(boolean changed,int position);
+    }
+}

+ 54 - 0
app/src/main/java/com/uas/bgdq/bean/AGVItemnumberBean.java

@@ -0,0 +1,54 @@
+package com.uas.bgdq.bean;
+
+public
+        /**
+         * Created by sw on 2025-02-08
+         */
+class AGVItemnumberBean {
+
+    private int BAR_ID;
+    private String BAR_CODE;
+    private String BAR_LOCATION;
+    private int BAR_REMAIN;
+    private boolean isSelect;
+
+    public boolean isSelect() {
+        return isSelect;
+    }
+
+    public void setSelect(boolean select) {
+        isSelect = select;
+    }
+
+    public int getBAR_ID() {
+        return BAR_ID;
+    }
+
+    public void setBAR_ID(int BAR_ID) {
+        this.BAR_ID = BAR_ID;
+    }
+
+    public String getBAR_CODE() {
+        return BAR_CODE;
+    }
+
+    public void setBAR_CODE(String BAR_CODE) {
+        this.BAR_CODE = BAR_CODE;
+    }
+
+    public String getBAR_LOCATION() {
+        return BAR_LOCATION;
+    }
+
+    public void setBAR_LOCATION(String BAR_LOCATION) {
+        this.BAR_LOCATION = BAR_LOCATION;
+    }
+
+    public int getBAR_REMAIN() {
+        return BAR_REMAIN;
+    }
+
+    public void setBAR_REMAIN(int BAR_REMAIN) {
+        this.BAR_REMAIN = BAR_REMAIN;
+    }
+}

+ 1 - 1
app/src/main/java/com/uas/bgdq/fragment/AGVPickup.java → app/src/main/java/com/uas/bgdq/fragment/AGVPickupFra.java

@@ -37,7 +37,7 @@ public
         /**
          * Created by sw on 2024-12-23
          */
-class AGVPickup extends BaseFragment {
+class AGVPickupFra extends BaseFragment {
 
     private Spinner masterSpinner;
     private String selectedItem = "无";

+ 409 - 0
app/src/main/java/com/uas/bgdq/fragment/AGVPickupItemNumberFra.java

@@ -0,0 +1,409 @@
+package com.uas.bgdq.fragment;
+
+import android.graphics.Color;
+import android.support.v7.widget.DividerItemDecoration;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.LinearLayout;
+import android.widget.Spinner;
+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.android.volley.toolbox.StringRequest;
+import com.uas.bgdq.R;
+import com.uas.bgdq.activity.FunctionActivity;
+import com.uas.bgdq.adapter.AGVItemNumberAdapter;
+import com.uas.bgdq.bean.AGVItemnumberBean;
+import com.uas.bgdq.global.GloableParams;
+import com.uas.bgdq.listener.MyEditorActionListener;
+import com.uas.bgdq.util.CommonUtil;
+import com.uas.bgdq.util.FastjsonUtil;
+import com.uas.bgdq.util.HttpCallback;
+import com.uas.bgdq.util.HttpParams;
+import com.uas.bgdq.util.StringUtil;
+import com.uas.bgdq.util.VolleyRequest;
+import com.uas.bgdq.view.ClearableEditText;
+
+import org.json.JSONException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AGVPickupItemNumberFra extends BaseFragment {
+
+    private Spinner masterSpinner;
+    private String selectedItem = "无";
+    private String data = "";   //拼接料号
+    static ArrayAdapter adapter;
+    private List<String> masterFuncList;
+    private StringRequest mStringRequest;
+    private ClearableEditText cet_item_number;
+    private Button bt_pickup, bt_cancel_pickup;
+    private LinearLayout ll_content;
+    private TextView tv_msg_result, tv_liaohao_value,
+            tv_name_value, tv_spec_value, tv_agv_barcode_number_value,
+            tv_execute_material_search_number_value,
+            tv_execute_outbound_number_value;
+    private LinearLayout ll_list_data;
+    private CheckBox cb_all_select;
+    private RecyclerView rv_list_data;
+    private List<AGVItemnumberBean> barList;
+    private AGVItemNumberAdapter agvItemNumberAdapter;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_agv_pickup_item_number;
+    }
+
+    @Override
+    protected void initViews() {
+        FunctionActivity.setTitle(getResources().getString(R.string.agv_pickup_item_number));
+        masterSpinner = (Spinner) root.findViewById(R.id.sp_login);
+        cet_item_number = root.findViewById(R.id.cet_item_number);
+        bt_pickup = root.findViewById(R.id.bt_pickup);
+        bt_cancel_pickup = root.findViewById(R.id.bt_cancel_pickup);
+        ll_content = root.findViewById(R.id.ll_content);
+        tv_msg_result = root.findViewById(R.id.tv_msg_result);
+        tv_liaohao_value = root.findViewById(R.id.tv_liaohao_value);
+        tv_name_value = root.findViewById(R.id.tv_name_value);
+        tv_spec_value = root.findViewById(R.id.tv_spec_value);
+        tv_agv_barcode_number_value = root.findViewById(R.id.tv_agv_barcode_number_value);
+        tv_execute_material_search_number_value = root.findViewById(R.id.tv_execute_material_search_number_value);
+        tv_execute_outbound_number_value = root.findViewById(R.id.tv_execute_outbound_number_value);
+        ll_list_data = root.findViewById(R.id.ll_list_data);
+        cb_all_select = root.findViewById(R.id.cb_all_select);
+
+        masterFuncList = new ArrayList<String>();
+        cet_item_number.requestFocus();
+
+        barList = new ArrayList<>();
+        rv_list_data = root.findViewById(R.id.rv_list_data);
+        rv_list_data.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayout.VERTICAL));
+        rv_list_data.setLayoutManager(new LinearLayoutManager(getActivity()));
+        agvItemNumberAdapter = new AGVItemNumberAdapter(barList);
+        rv_list_data.setAdapter(agvItemNumberAdapter);
+
+    }
+
+    @Override
+    protected void initEvents() {
+        agvItemNumberAdapter.setOnSetCheckedChanged(new AGVItemNumberAdapter.OnSetCheckedChanged() {
+            @Override
+            public void onChanged(boolean changed, int position) {
+                if (changed) {
+                    if (!TextUtils.isEmpty(data)) {
+                        if (!data.contains(String.valueOf(barList.get(position).getBAR_ID()))) {
+                            data += barList.get(position).getBAR_ID() + ",";
+                        }
+                    } else {
+                        data = barList.get(position).getBAR_ID() + ",";
+                    }
+                } else {
+                    if (!TextUtils.isEmpty(data)) {
+                        if (data.contains(String.valueOf(barList.get(position).getBAR_ID()))) {
+                            int startIndex = data.indexOf(String.valueOf(barList.get(position).getBAR_ID()));
+                            int endIndex = startIndex + String.valueOf(barList.get(position).getBAR_ID()).length() + 1;
+                            // 删除子串
+                            data = data.substring(0, startIndex).concat(data.substring(endIndex));
+                        }
+                    }
+                }
+            }
+        });
+        masterSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                //选中值
+                selectedItem = parent.getItemAtPosition(position).toString();
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+
+            }
+        });
+        CommonUtil.setEditorActionListener(cet_item_number, new MyEditorActionListener() {
+            @Override
+            public void MyEditorAction(String text, int actionId, KeyEvent event) {
+                getBarAcceptCode(text);
+            }
+        });
+        bt_pickup.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getPickUp(selectedItem,data);
+            }
+        });
+        bt_cancel_pickup.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getCancelPickUp(cet_item_number.getText().toString().trim());
+            }
+        });
+        cb_all_select.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (buttonView.isPressed()) {
+                    if (isChecked) {
+                        data = "";
+                        for (int i = 0; i < barList.size(); i++) {
+                            data += barList.get(i).getBAR_ID() + ",";
+                            barList.get(i).setSelect(true);
+                        }
+                    }else {
+                        data = "";
+                        for (int i = 0; i < barList.size(); i++) {
+                            barList.get(i).setSelect(false);
+                        }
+                    }
+                    agvItemNumberAdapter.setNewData(barList);
+                }
+            }
+        });
+    }
+
+    private void getBarAcceptCode(String prodcode) {
+        if (StringUtil.isEmpty(prodcode)) {
+            CommonUtil.toastNoRepeat(mActivity, "请输入料号");
+            return;
+        }
+        progressDialog.show();
+        try {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_AGV_OUT_GET_BARBYPROD)
+                    .method(Request.Method.GET)
+                    .addParam("prodcode", prodcode)
+                    .build(), new HttpCallback() {
+                @Override
+                public void onSuccess(int flag, Object o) throws Exception {
+                    progressDialog.dismiss();
+                    try {
+                        JSONObject dataObject = FastjsonUtil.getJSONObject(o.toString(), "data");
+                        String PR_CODE = dataObject.getString("PR_CODE") == null ? "" : dataObject.getString("PR_CODE");
+                        String PR_SPEC = dataObject.getString("PR_SPEC") == null ? "" : dataObject.getString("PR_SPEC");
+                        String PR_DETAIL = dataObject.getString("PR_DETAIL") == null ? "" : dataObject.getString("PR_DETAIL");
+                        String V_COUNT = dataObject.getString("V_COUNT") == null ? "" : dataObject.getString("V_COUNT");
+                        String V_QHCOUNT = dataObject.getString("V_QHCOUNT") == null ? "" : dataObject.getString("V_QHCOUNT");
+                        String V_OTHCOUNT = dataObject.getString("V_OTHCOUNT") == null ? "" : dataObject.getString("V_OTHCOUNT");
+
+                        tv_msg_result.setVisibility(View.GONE);
+                        tv_msg_result.setText("");
+                        ll_content.setVisibility(View.VISIBLE);
+
+                        tv_liaohao_value.setText(PR_CODE);
+                        tv_name_value.setText(PR_DETAIL);
+                        tv_spec_value.setText(PR_SPEC);
+                        tv_agv_barcode_number_value.setText(V_COUNT);
+                        tv_execute_material_search_number_value.setText(V_QHCOUNT);
+                        tv_execute_outbound_number_value.setText(V_OTHCOUNT);
+
+                        JSONArray BARLIST = dataObject.getJSONArray("BARLIST") == null ? null : dataObject.getJSONArray("BARLIST");
+                        if (BARLIST != null) {
+                            ll_list_data.setVisibility(View.VISIBLE);
+                            barList.clear();
+                            for (int i = 0; i < BARLIST.size(); i++) {
+                                JSONObject jb = BARLIST.getJSONObject(i);
+                                AGVItemnumberBean agvItemnumberBean = new AGVItemnumberBean();
+                                agvItemnumberBean.setBAR_ID(jb.getInteger("BAR_ID"));
+                                agvItemnumberBean.setBAR_CODE(jb.getString("BAR_CODE"));
+                                agvItemnumberBean.setBAR_REMAIN(jb.getInteger("BAR_REMAIN"));
+                                agvItemnumberBean.setBAR_LOCATION(jb.getString("BAR_LOCATION"));
+                                agvItemnumberBean.setSelect(false);
+                                barList.add(agvItemnumberBean);
+                            }
+                            agvItemNumberAdapter.setmList(barList);
+                            agvItemNumberAdapter.notifyDataSetChanged();
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+
+                @Override
+                public void onFail(int flag, String failStr) throws Exception {
+                    progressDialog.dismiss();
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                    tv_msg_result.setTextColor(Color.RED);
+                    tv_msg_result.setVisibility(View.VISIBLE);
+                    ll_content.setVisibility(View.GONE);
+                    tv_msg_result.setText(failStr);
+                    cet_item_number.requestFocus();
+                    cet_item_number.setText(null);
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void getPickUp(String trackNo,String data) {
+        if (TextUtils.isEmpty(data)) {
+            CommonUtil.toastNoRepeat(mActivity, "请选择条码号");
+            return;
+        }
+        if (trackNo.equals("无")) {
+            CommonUtil.toastNoRepeat(mActivity, "请选择轨道编号");
+            return;
+        }
+        progressDialog.show();
+        try {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_AGV_OUT_BYPRODDEAL)
+                    .method(Request.Method.POST)
+                    .addParam("trackNo", trackNo)
+                    .addParam("data", TextUtils.isEmpty(data)?"":data.substring(0,data.length()-1))
+                    .build(), new HttpCallback() {
+                @Override
+                public void onSuccess(int flag, Object o) throws Exception {
+                    progressDialog.dismiss();
+                    try {
+                        org.json.JSONObject resultObject = new org.json.JSONObject(o.toString());
+                        if (resultObject.optBoolean("success")) {
+                            tv_msg_result.setVisibility(View.GONE);
+                            tv_msg_result.setText("");
+                            cet_item_number.setText("");
+                            ll_content.setVisibility(View.GONE);
+                            tv_msg_result.setVisibility(View.VISIBLE);
+                            tv_msg_result.setTextColor(getResources().getColor(R.color.blue));
+                            tv_msg_result.setText(resultObject.getString("data")== null?"":resultObject.getString("data"));
+                        }
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
+                }
+
+                @Override
+                public void onFail(int flag, String failStr) throws Exception {
+                    progressDialog.dismiss();
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                    tv_msg_result.setTextColor(Color.RED);
+                    tv_msg_result.setVisibility(View.VISIBLE);
+                    ll_content.setVisibility(View.GONE);
+                    tv_msg_result.setText(failStr);
+                    cet_item_number.requestFocus();
+                    cet_item_number.setText(null);
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void getCancelPickUp(String prodcode) {
+        if (StringUtil.isEmpty(prodcode)) {
+            CommonUtil.toastNoRepeat(mActivity, "请输入料号");
+            return;
+        }
+        progressDialog.show();
+        try {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_END_AGV_OUTBYPROD)
+                    .method(Request.Method.POST)
+                    .addParam("prodcode", prodcode)
+                    .build(), new HttpCallback() {
+                @Override
+                public void onSuccess(int flag, Object o) throws Exception {
+                    progressDialog.dismiss();
+                    tv_msg_result.setVisibility(View.GONE);
+                    tv_msg_result.setText("");
+                    cet_item_number.setText("");
+                    try {
+                        org.json.JSONObject resultObject = new org.json.JSONObject(o.toString());
+                        if (resultObject.optBoolean("success")) {
+                            tv_msg_result.setVisibility(View.VISIBLE);
+                            tv_msg_result.setTextColor(getResources().getColor(R.color.blue));
+                            tv_msg_result.setText(resultObject.getString("data")== null?"":resultObject.getString("data"));
+                        }
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
+                }
+
+                @Override
+                public void onFail(int flag, String failStr) throws Exception {
+                    progressDialog.dismiss();
+                    CommonUtil.toastNoRepeat(mActivity, failStr);
+                    tv_msg_result.setTextColor(Color.RED);
+                    tv_msg_result.setVisibility(View.VISIBLE);
+                    ll_content.setVisibility(View.GONE);
+                    tv_msg_result.setText(failStr);
+                    cet_item_number.requestFocus();
+                    cet_item_number.setText(null);
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    protected void initDatas() {
+        getSpinnerData();
+    }
+
+    private void getSpinnerData() {
+        progressDialog.show();
+        VolleyRequest.getInstance().stringRequest(mStringRequest,
+                new HttpParams.Builder()
+                        .url(GloableParams.ADDRESS_GETAGV_CODE)
+                        .method(Request.Method.GET)
+                        .tag(TAG)
+                        .flag(1)
+                        .build(), new HttpCallback() {
+                    @Override
+                    public void onSuccess(int flag, Object o) throws Exception {
+                        progressDialog.dismiss();
+                        try {
+                            masterFuncList.clear();
+                            String result = o.toString();
+                            JSONObject resultObject = JSON.parseObject(result);
+                            com.alibaba.fastjson.JSONArray dataArray = resultObject.getJSONArray("data");
+                            if (dataArray != null && dataArray.size() > 0) {
+                                for (Object index : dataArray) {
+                                    JSONObject data = (JSONObject) index;
+                                    String SH_CODE = data.getString("SH_CODE");
+                                    masterFuncList.add(SH_CODE);
+                                }
+                            }
+                            if (masterFuncList.size() > 0) {
+                                adapter.notifyDataSetChanged();
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            progressDialog.dismiss();
+                        }
+                    }
+
+                    @Override
+                    public void onFail(int flag, String failStr) throws Exception {
+                        progressDialog.dismiss();
+                        CommonUtil.toastNoRepeat(mActivity, failStr);
+                    }
+                });
+
+        adapter = new ArrayAdapter(mActivity, R.layout.item_spinner, R.id.text_spinner, masterFuncList);
+        masterSpinner.setAdapter(adapter);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        return false;
+    }
+
+    @Override
+    public boolean onFragmentBackPressed() {
+        return false;
+    }
+
+}

+ 6 - 1
app/src/main/java/com/uas/bgdq/fragment/IndexWareHouseContentFragment.java

@@ -156,7 +156,12 @@ public class IndexWareHouseContentFragment extends BaseFragment implements Adapt
                             .replace(R.id.container_function_fragment, fragment).commit();
                     break;
                 case GloableParams.GRIDNAME_AGV_PICKUP:  //AGV取货
-                    fragment = new AGVPickup();
+                    fragment = new AGVPickupFra();
+                    getFragmentManager().beginTransaction().addToBackStack(null)
+                            .replace(R.id.container_function_fragment, fragment).commit();
+                    break;
+                case GloableParams.GRIDNAME_AGV_PICKUP_ITEM_NUMBER:  //AGV取货(料号)
+                    fragment = new AGVPickupItemNumberFra();
                     getFragmentManager().beginTransaction().addToBackStack(null)
                             .replace(R.id.container_function_fragment, fragment).commit();
                     break;

+ 18 - 1
app/src/main/java/com/uas/bgdq/global/GloableParams.java

@@ -282,6 +282,9 @@ public class GloableParams {
     public static String ADDRESS_AGVOUTGETBAR;    //AGV取货-条码enter
     public static String ADDRESS_AGV_OUT_PICKUP;    //AGV取货-取货
     public static String ADDRESS_AGV_OUT_CANCEL_PICKUP;    //AGV取货-取消取货
+    public static String ADDRESS_AGV_OUT_GET_BARBYPROD;    //AGV取货(料号)-料号enter
+    public static String ADDRESS_AGV_OUT_BYPRODDEAL;    //AGV取货(料号)-取货
+    public static String ADDRESS_END_AGV_OUTBYPROD;    //AGV取货(料号)-取消取货
 
     //连接服务器请求地址
     private static final String ADDRESSTAIL_CONNECT_SERVER = "/api/pda/getAllMasters.action";
@@ -789,6 +792,12 @@ public class GloableParams {
     private static final String ADDRESSTAIL_AGV_OUT_PICKUP = "/api/pda/transfer/agvOut.action";
     //AGV取货-取消取货
     private static final String ADDRESSTAIL_AGV_OUT_CANCEL_PICKUP = "/api/pda/transfer/endAgvOut.action";
+    //AGV取货(料号)-料号enter
+    private static final String ADDRESSTAIL_AGV_OUT_GET_BARBYPROD = "/api/pda/transfer/agvOutGetBarByProd.action";
+    //AGV取货(料号)-取货
+    private static final String ADDRESSTAIL_AGV_OUT_BYPRODDEAL = "/api/pda/transfer/agvOutByProdDeal.action";
+    //AGV取货(料号)-取消取货
+    private static final String ADDRESSTAIL_END_AGV_OUTBYPROD = "/api/pda/transfer/endAgvOutByProd.action";
 
     /**
      *智能上架(扫码)
@@ -851,6 +860,7 @@ public class GloableParams {
 //    public static final String GRIDNAME_SMART_SHELVES = "智能上架(扫码)";
     public static final String GRIDNAME_SMART_SHELVES = "AGV上架";
     public static final String GRIDNAME_AGV_PICKUP = "AGV取货";
+    public static final String GRIDNAME_AGV_PICKUP_ITEM_NUMBER = "AGV取货(料号)";
     public static final String[] storageGridNames = {
             GRIDNAME_GOOD_SEARCH,
             GRIDNAME_BATCH_OPRATION,
@@ -861,7 +871,8 @@ public class GloableParams {
 //            GRIDNAME_BOM_CHECK,
 //            MENU_STORAGE_STOCK_INFO_COLLECT
             GRIDNAME_SMART_SHELVES,
-            GRIDNAME_AGV_PICKUP
+            GRIDNAME_AGV_PICKUP,
+            GRIDNAME_AGV_PICKUP_ITEM_NUMBER
     };
     public static final int[] storageGridImgs = {
             R.drawable.storage_good_search,
@@ -872,6 +883,7 @@ public class GloableParams {
 //            R.drawable.storage_msd_manager,
 //            R.drawable.storage_transfer
             R.drawable.iv_shelves,
+            R.drawable.quhuo,
             R.drawable.quhuo
     };
     //DETAIL:搜索备料单号,下拉列表
@@ -1264,5 +1276,10 @@ public class GloableParams {
         GloableParams.ADDRESS_AGVOUTGETBAR = uriHead + GloableParams.ADDRESSTAIL_AGVOUTGETBAR;
         GloableParams.ADDRESS_AGV_OUT_PICKUP = uriHead + GloableParams.ADDRESSTAIL_AGV_OUT_PICKUP;
         GloableParams.ADDRESS_AGV_OUT_CANCEL_PICKUP = uriHead + GloableParams.ADDRESSTAIL_AGV_OUT_CANCEL_PICKUP;
+        GloableParams.ADDRESS_AGV_OUT_GET_BARBYPROD = uriHead + GloableParams.ADDRESSTAIL_AGV_OUT_GET_BARBYPROD;
+        GloableParams.ADDRESS_AGV_OUT_BYPRODDEAL = uriHead + GloableParams.ADDRESSTAIL_AGV_OUT_BYPRODDEAL;
+        GloableParams.ADDRESS_END_AGV_OUTBYPROD = uriHead + GloableParams.ADDRESSTAIL_END_AGV_OUTBYPROD;
+
+
     }
 }

+ 1 - 1
app/src/main/res/layout/fragment_agv_pickup.xml

@@ -50,7 +50,7 @@
             android:background="@color/gray_light"
             android:gravity="center"
             android:padding="6dp"
-            android:text="条码"
+            android:text="@string/or_barcode"
             android:textColor="@color/body_text_1"
             android:textSize="16sp" />
 

+ 320 - 0
app/src/main/res/layout/fragment_agv_pickup_item_number.xml

@@ -0,0 +1,320 @@
+<?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">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:orientation="horizontal"
+        android:layout_marginTop="10dp"
+        android:layout_marginStart="10dp"
+        android:layout_marginEnd="10dp"
+        >
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:textColor="@color/body_text_1"
+            android:textSize="14sp"
+            android:text="@string/track_number"
+            />
+
+        <Spinner
+            android:id="@+id/sp_login"
+            android:layout_width="170dp"
+            android:layout_height="30dp"
+            android:layout_marginStart="10dp"
+            android:background="@drawable/bg_spinner"
+            android:gravity="center"
+            android:layout_marginBottom="5dp"
+            />
+
+    </LinearLayout>
+
+
+    <LinearLayout
+        android:layout_marginStart="10dp"
+        android:layout_marginEnd="10dp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="10dp"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="110dp"
+            android:layout_height="match_parent"
+            android:background="@color/gray_light"
+            android:gravity="center"
+            android:padding="6dp"
+            android:text="@string/text_whcheck_bar_procode"
+            android:textColor="@color/body_text_1"
+            android:textSize="16sp" />
+
+        <com.uas.bgdq.view.ClearableEditText
+            android:id="@+id/cet_item_number"
+            style="@style/EditTextStyle"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:hint="@string/Please_collect_part_number"
+            android:imeOptions="actionSend"
+            android:textColor="@color/black" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginStart="5dp"
+        android:layout_marginEnd="5dp"
+        android:layout_marginTop="10dp"
+        >
+
+        <Button
+            android:id="@+id/bt_pickup"
+            style="@style/ButtonStyle"
+            android:layout_weight="1"
+            android:text="取货" />
+
+        <Button
+            android:id="@+id/bt_cancel_pickup"
+            style="@style/ButtonStyle"
+            android:layout_weight="1"
+            android:text="取消取货" />
+
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/tv_msg_result"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="10dp"
+        android:layout_marginStart="10dp"
+        android:layout_marginEnd="10dp"
+        android:background="@drawable/shape_msg_block"
+        android:padding="10dp"
+        android:visibility="gone"
+        tools:text="boxResultboxResultboxResultboxResult"
+        tools:visibility="visible" />
+
+
+    <ScrollView
+        android:layout_marginTop="10dp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:visibility="gone"
+            tools:visibility="visible"
+            android:id="@+id/ll_content"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:layout_marginStart="10dp"
+            android:layout_marginEnd="10dp"
+            android:padding="10dp"
+            android:background="@drawable/shape_msg_block"
+            >
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_liaohao"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:text="料号: "
+                    android:textSize="14sp"
+                    android:layout_centerVertical="true"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_liaohao_value"
+                    android:layout_toEndOf="@+id/tv_liaohao"
+                    android:layout_marginStart="10dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:text="xxx"
+                    android:layout_centerVertical="true"
+                    />
+
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:text="名称: "
+                    android:textSize="14sp"
+                    android:layout_centerVertical="true"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_name_value"
+                    android:layout_toEndOf="@+id/tv_name"
+                    android:layout_marginStart="10dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:text="xxx"
+                    android:layout_centerVertical="true"
+                    />
+
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_spec"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:text="规格: "
+                    android:textSize="14sp"
+                    android:layout_centerVertical="true"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_spec_value"
+                    android:layout_toEndOf="@+id/tv_spec"
+                    android:layout_marginStart="10dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:text="xxx"
+                    android:layout_centerVertical="true"
+                    />
+
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_agv_barcode_number"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:text="AGV库位条码个数: "
+                    android:textSize="14sp"
+                    android:layout_centerVertical="true"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_agv_barcode_number_value"
+                    android:layout_toEndOf="@+id/tv_agv_barcode_number"
+                    android:layout_marginStart="10dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:text="xxx"
+                    android:layout_centerVertical="true"
+                    />
+
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_execute_material_search_number"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:text="正在执行找料个数: "
+                    android:textSize="14sp"
+                    android:layout_centerVertical="true"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_execute_material_search_number_value"
+                    android:layout_toEndOf="@+id/tv_execute_material_search_number"
+                    android:layout_marginStart="10dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:text="xxx"
+                    android:layout_centerVertical="true"
+                    />
+
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_execute_outbound_number"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:text="正在执行出库个数: "
+                    android:textSize="14sp"
+                    android:layout_centerVertical="true"
+                    />
+
+                <TextView
+                    android:id="@+id/tv_execute_outbound_number_value"
+                    android:layout_toEndOf="@+id/tv_execute_outbound_number"
+                    android:layout_marginStart="10dp"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:text="xxx"
+                    android:layout_centerVertical="true"
+                    />
+
+            </RelativeLayout>
+
+            <LinearLayout
+                android:id="@+id/ll_list_data"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:layout_marginTop="6dp"
+                android:visibility="gone"
+                >
+
+                <CheckBox
+                    android:id="@+id/cb_all_select"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="全选"/>
+
+                <android.support.v7.widget.RecyclerView
+                    android:id="@+id/rv_list_data"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    />
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+
+    </ScrollView>
+
+</LinearLayout>

+ 115 - 0
app/src/main/res/layout/item_agv_item_number.xml

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+
+    <CheckBox
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/cb_select"
+        android:layout_centerVertical="true"
+        android:layout_marginStart="10dp"
+        />
+
+    <LinearLayout
+        android:layout_marginStart="5dp"
+        android:layout_toEndOf="@+id/cb_select"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        >
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            >
+
+            <TextView
+                android:id="@+id/tv_barcode"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/spacing_big"
+                android:text="条码号: "
+                android:textSize="14sp"
+                android:layout_centerVertical="true"
+                />
+
+            <TextView
+                android:id="@+id/tv_barcode_value"
+                android:layout_toEndOf="@+id/tv_barcode"
+                android:layout_marginStart="10dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:text="xxx"
+                android:layout_centerVertical="true"
+                />
+
+        </RelativeLayout>
+
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            >
+
+            <TextView
+                android:id="@+id/tv_bar_remain"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/spacing_big"
+                android:text="数量: "
+                android:textSize="14sp"
+                android:layout_centerVertical="true"
+                />
+
+            <TextView
+                android:id="@+id/tv_bar_remain_value"
+                android:layout_toEndOf="@+id/tv_bar_remain"
+                android:layout_marginStart="10dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:text="xxx"
+                android:layout_centerVertical="true"
+                />
+
+        </RelativeLayout>
+
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            >
+
+            <TextView
+                android:id="@+id/tv_bar_location"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/spacing_big"
+                android:text="仓位: "
+                android:textSize="14sp"
+                android:layout_centerVertical="true"
+                />
+
+            <TextView
+                android:id="@+id/tv_bar_location_value"
+                android:layout_toEndOf="@+id/tv_bar_location"
+                android:layout_marginStart="10dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:text="xxx"
+                android:layout_centerVertical="true"
+                />
+
+        </RelativeLayout>
+
+
+    </LinearLayout>
+
+
+
+</RelativeLayout>

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

@@ -436,6 +436,8 @@
 
     <string name="agv_shelving">AGV上架</string>
     <string name="agv_pickup">AGV取货</string>
+    <string name="agv_pickup_item_number">AGV取货(料号)</string>
     <string name="track_number">轨道编号</string>
+    <string name="Please_collect_part_number">请采集料号</string>
 
 </resources>

+ 2 - 2
build.gradle

@@ -50,8 +50,8 @@ ext {
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",
-            versionCode      : 14,
-            versionName      : "1.0.4"
+            versionCode      : 15,
+            versionName      : "1.0.5"
     ]
 
     depsVersion = [