songw 10 сар өмнө
parent
commit
230a58fb09

+ 0 - 3
app/src/main/java/com/uas/bgdq/fragment/AGVIOCOutMakeMaterialOper.java

@@ -55,7 +55,6 @@ import com.uas.bgdq.R;
 import com.uas.bgdq.activity.FunctionActivity;
 import com.uas.bgdq.application.PdaApplication;
 import com.uas.bgdq.bean.ErrorMsg;
-import com.uas.bgdq.bean.GroundingBean;
 import com.uas.bgdq.bean.IOCOutMakeMaterialOperMsd;
 import com.uas.bgdq.bean.IOCOutmakeMaterialSplitBean;
 import com.uas.bgdq.bean.MaterialInformationBean;
@@ -81,7 +80,6 @@ import com.uas.bgdq.util.LogUtil;
 import com.uas.bgdq.util.PrintUtils;
 import com.uas.bgdq.util.VolleyRequest;
 import com.uas.bgdq.view.ClearableEditText;
-import com.umeng.commonsdk.debug.E;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
 import com.uuzuche.lib_zxing.activity.CodeUtils;
 
@@ -732,7 +730,6 @@ public class AGVIOCOutMakeMaterialOper extends BaseFragment implements View.OnCl
 
     @Override
     protected void initEvents() {
-        masterSpinner.setOnItemSelectedListener(this);
         btnActionbarRight.setOnClickListener(this);
         etBarCode.addTextChangedListener(watcher);
         mCollectTypeRadioGroup.setOnCheckedChangeListener(this);

+ 341 - 0
app/src/main/java/com/uas/bgdq/fragment/AGVPickup.java

@@ -0,0 +1,341 @@
+package com.uas.bgdq.fragment;
+
+import android.graphics.Color;
+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.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.Spinner;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+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.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
+        /**
+         * Created by sw on 2024-12-23
+         */
+class AGVPickup extends BaseFragment {
+
+    private Spinner masterSpinner;
+    private String selectedItem = "无";
+    static ArrayAdapter adapter;
+    private List<String> masterFuncList;
+    private StringRequest mStringRequest;
+    private ClearableEditText mBarcodeEditText;
+    private Button bt_pickup, bt_cancel_pickup;
+    private LinearLayout ll_content;
+    private RelativeLayout rl_msg;
+    private TextView tv_msg_result, tv_barcode_value, tv_liaohao_value, tv_number_value,
+            tv_name_value, tv_spec_value, tv_location_value, tv_msg_value;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_agv_pickup;
+    }
+
+    @Override
+    protected void initViews() {
+        FunctionActivity.setTitle(getResources().getString(R.string.agv_pickup));
+        masterSpinner = (Spinner) root.findViewById(R.id.sp_login);
+        mBarcodeEditText = root.findViewById(R.id.barcode_info_collect_barcode_et);
+        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);
+        rl_msg = root.findViewById(R.id.rl_msg);
+        tv_msg_result = root.findViewById(R.id.tv_msg_result);
+        tv_barcode_value = root.findViewById(R.id.tv_barcode_value);
+        tv_liaohao_value = root.findViewById(R.id.tv_liaohao_value);
+        tv_number_value = root.findViewById(R.id.tv_number_value);
+        tv_name_value = root.findViewById(R.id.tv_name_value);
+        tv_spec_value = root.findViewById(R.id.tv_spec_value);
+        tv_location_value = root.findViewById(R.id.tv_location_value);
+        tv_msg_value = root.findViewById(R.id.tv_msg_value);
+
+        masterFuncList = new ArrayList<String>();
+        mBarcodeEditText.requestFocus();
+    }
+
+    @Override
+    protected void initEvents() {
+        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(mBarcodeEditText, 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,mBarcodeEditText.getText().toString().trim());
+            }
+        });
+        bt_cancel_pickup.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                getCancelPickUp(mBarcodeEditText.getText().toString().trim());
+            }
+        });
+    }
+
+    private void getBarAcceptCode(String barcode) {
+        if (StringUtil.isEmpty(barcode)) {
+            CommonUtil.toastNoRepeat(mActivity, "请输入条码号");
+            return;
+        }
+        progressDialog.show();
+        try {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_AGVOUTGETBAR)
+                    .method(Request.Method.GET)
+                    .addParam("barcode", barcode)
+                    .build(), new HttpCallback() {
+                @Override
+                public void onSuccess(int flag, Object o) throws Exception {
+                    progressDialog.dismiss();
+                    try {
+                        JSONObject dataObject = FastjsonUtil.getJSONObject(o.toString(), "data");
+                        String BAR_PRODCODE = dataObject.getString("BAR_PRODCODE") == null ? "" : dataObject.getString("BAR_PRODCODE");
+                        String PR_DETAIL = dataObject.getString("PR_DETAIL") == null ? "" : dataObject.getString("PR_DETAIL");
+                        String PR_SPEC = dataObject.getString("PR_SPEC") == null ? "" : dataObject.getString("PR_SPEC");
+                        String PR_ORISPECCODE = dataObject.getString("PR_ORISPECCODE") == null ? "" : dataObject.getString("PR_ORISPECCODE");
+                        String BAR_LOCATION = dataObject.getString("BAR_LOCATION") == null ? "" : dataObject.getString("BAR_LOCATION");
+                        String BAR_CODE = dataObject.getString("BAR_CODE") == null ? "" : dataObject.getString("BAR_CODE");
+                        String BAR_REMAIN = dataObject.getString("BAR_REMAIN") == null ? "" : dataObject.getString("BAR_REMAIN");
+                        String BAR_WHCODE = dataObject.getString("BAR_WHCODE") == null ? "" : dataObject.getString("BAR_WHCODE");
+                        String ok = dataObject.getString("ok") == null ? "" : dataObject.getString("ok");
+                        String msg = dataObject.getString("msg") == null ? "" : dataObject.getString("msg");
+                        tv_msg_result.setVisibility(View.GONE);
+                        tv_msg_result.setText("");
+                        ll_content.setVisibility(View.VISIBLE);
+                        String barCode = mBarcodeEditText.getText().toString().trim();
+                        mBarcodeEditText.setText("");
+                        tv_barcode_value.setText(BAR_CODE);
+                        tv_liaohao_value.setText(BAR_PRODCODE);
+                        tv_number_value.setText(BAR_REMAIN);
+                        tv_name_value.setText(PR_DETAIL);
+                        tv_spec_value.setText(PR_SPEC);
+                        tv_location_value.setText(BAR_LOCATION);
+                        if (!TextUtils.isEmpty(msg)) {
+                            rl_msg.setVisibility(View.VISIBLE);
+                            tv_msg_value.setText(msg);
+                        }
+                        if (!TextUtils.isEmpty(ok) && ok.equals("1")) {
+                            //ok 的值是1 ,则自动再发送取货按钮的请求
+                            //ok 的值是0 ,则只展示数据
+                            getPickUp(selectedItem,barCode);
+                        }
+                    }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);
+                    rl_msg.setVisibility(View.GONE);
+                    tv_msg_result.setText(failStr);
+                    mBarcodeEditText.requestFocus();
+                    mBarcodeEditText.setText(null);
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void getPickUp(String trackNo,String barcode) {
+        if (StringUtil.isEmpty(barcode)) {
+            CommonUtil.toastNoRepeat(mActivity, "请输入条码号");
+            return;
+        }
+        progressDialog.show();
+        try {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_AGV_OUT_PICKUP)
+                    .method(Request.Method.POST)
+                    .addParam("trackNo", trackNo)
+                    .addParam("barcode", barcode)
+                    .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("");
+                    mBarcodeEditText.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("发送取货任务成功");
+                        }
+                    } 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);
+                    rl_msg.setVisibility(View.GONE);
+                    tv_msg_result.setText(failStr);
+                    mBarcodeEditText.requestFocus();
+                    mBarcodeEditText.setText(null);
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void getCancelPickUp(String barcode) {
+        if (StringUtil.isEmpty(barcode)) {
+            CommonUtil.toastNoRepeat(mActivity, "请输入条码号");
+            return;
+        }
+        progressDialog.show();
+        try {
+            VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
+                    .url(GloableParams.ADDRESS_AGV_OUT_CANCEL_PICKUP)
+                    .method(Request.Method.POST)
+                    .addParam("barcode", barcode)
+                    .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("");
+                    mBarcodeEditText.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("取消取货操作成功");
+                        }
+                    } 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);
+                    rl_msg.setVisibility(View.GONE);
+                    tv_msg_result.setText(failStr);
+                    mBarcodeEditText.requestFocus();
+                    mBarcodeEditText.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();
+                            com.alibaba.fastjson.JSONObject resultObject = JSON.parseObject(result);
+                            com.alibaba.fastjson.JSONArray dataArray = resultObject.getJSONArray("data");
+                            if (dataArray != null && dataArray.size() > 0) {
+                                for (Object index : dataArray) {
+                                    com.alibaba.fastjson.JSONObject data = (com.alibaba.fastjson.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;
+    }
+
+}

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

@@ -150,11 +150,17 @@ public class IndexWareHouseContentFragment extends BaseFragment implements Adapt
                     getFragmentManager().beginTransaction().addToBackStack(null)
                             .replace(R.id.container_function_fragment, fragment).commit();
                     break;
-                case GloableParams.GRIDNAME_SMART_SHELVES:
+                case GloableParams.GRIDNAME_SMART_SHELVES:  //AGV上架
                     fragment = new SmartShelvestFragment();
                     getFragmentManager().beginTransaction().addToBackStack(null)
                             .replace(R.id.container_function_fragment, fragment).commit();
                     break;
+                case GloableParams.GRIDNAME_AGV_PICKUP:  //AGV取货
+                    fragment = new AGVPickup();
+                    getFragmentManager().beginTransaction().addToBackStack(null)
+                            .replace(R.id.container_function_fragment, fragment).commit();
+                    break;
+
             }
             if (mFragment != null) {
                 FragmentUtils.switchFragment(IndexWareHouseContentFragment.this, mFragment);

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

@@ -279,6 +279,9 @@ public class GloableParams {
     public static String ADDRESS_END_PROD_OUTAGV;    //删除
     public static String ADDRESS_ORBITAL_MOTION;    //轨道动作
     public static String ADDRESS_GETAGV_CODE;    //AGV获取轨道编号
+    public static String ADDRESS_AGVOUTGETBAR;    //AGV取货-条码enter
+    public static String ADDRESS_AGV_OUT_PICKUP;    //AGV取货-取货
+    public static String ADDRESS_AGV_OUT_CANCEL_PICKUP;    //AGV取货-取消取货
 
     //连接服务器请求地址
     private static final String ADDRESSTAIL_CONNECT_SERVER = "/api/pda/getAllMasters.action";
@@ -780,6 +783,13 @@ public class GloableParams {
     //轨道编号
     private static final String ADDRESSTAIL_GETAGV_CODE = "/api/pda/transfer/getagvcode.action";
 
+    //AGV取货-enter
+    private static final String ADDRESSTAIL_AGVOUTGETBAR = "/api/pda/transfer/agvOutGetBar.action";
+    //AGV取货-取货
+    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";
+
     /**
      *智能上架(扫码)
      */
@@ -840,6 +850,7 @@ public class GloableParams {
     public static final String MENU_STORAGE_STOCK_INFO_COLLECT = "库存条码绑定";
 //    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[] storageGridNames = {
             GRIDNAME_GOOD_SEARCH,
             GRIDNAME_BATCH_OPRATION,
@@ -849,7 +860,8 @@ public class GloableParams {
             MENU_STORAGE_BARCODE_INFO_COLLECT,
 //            GRIDNAME_BOM_CHECK,
 //            MENU_STORAGE_STOCK_INFO_COLLECT
-            GRIDNAME_SMART_SHELVES
+            GRIDNAME_SMART_SHELVES,
+            GRIDNAME_AGV_PICKUP
     };
     public static final int[] storageGridImgs = {
             R.drawable.storage_good_search,
@@ -859,7 +871,8 @@ public class GloableParams {
             R.drawable.ic_modify_quantity,
 //            R.drawable.storage_msd_manager,
 //            R.drawable.storage_transfer
-            R.drawable.iv_shelves
+            R.drawable.iv_shelves,
+            R.drawable.quhuo
     };
     //DETAIL:搜索备料单号,下拉列表
     public static final String SPINNER_PREPARE_SEARCH = "搜索备料单号";
@@ -1248,5 +1261,8 @@ public class GloableParams {
         GloableParams.ADDRESS_END_PROD_OUTAGV = uriHead + GloableParams.ADDRESSTAIL_END_PROD_OUTAGV;
         GloableParams.ADDRESS_ORBITAL_MOTION = uriHead + GloableParams.ADDRESSTAIL_ORBITAL_MOTION;
         GloableParams.ADDRESS_GETAGV_CODE = uriHead + GloableParams.ADDRESSTAIL_GETAGV_CODE;
+        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;
     }
 }

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


+ 307 - 0
app/src/main/res/layout/fragment_agv_pickup.xml

@@ -0,0 +1,307 @@
+<?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="20dp"
+        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="20dp"
+        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="条码"
+            android:textColor="@color/body_text_1"
+            android:textSize="16sp" />
+
+        <com.uas.bgdq.view.ClearableEditText
+            android:id="@+id/barcode_info_collect_barcode_et"
+            style="@style/EditTextStyle"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:hint="@string/please_collect_barcode"
+            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="20dp"
+        >
+
+        <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="@dimen/spacing_big"
+        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="15dp"
+        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_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_liaohao"
+                    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_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"
+                    />
+
+                <TextView
+                    android:layout_toStartOf="@+id/tv_number_value"
+                    android:id="@+id/tv_number"
+                    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_number_value"
+                    android:layout_alignParentEnd="true"
+                    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="@dimen/spacing_big"
+                    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="@dimen/spacing_big"
+                    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_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_location_value"
+                    android:layout_toEndOf="@+id/tv_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>
+
+            <RelativeLayout
+                android:id="@+id/rl_msg"
+                android:visibility="gone"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView
+                    android:id="@+id/tv_msg_value"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:text="xxx"
+                    android:layout_centerVertical="true"
+                    />
+
+            </RelativeLayout>
+
+        </LinearLayout>
+
+    </ScrollView>
+
+</LinearLayout>

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

@@ -435,5 +435,7 @@
     </string-array>
 
     <string name="agv_shelving">AGV上架</string>
+    <string name="agv_pickup">AGV取货</string>
+    <string name="track_number">轨道编号</string>
 
 </resources>

+ 2 - 2
build.gradle

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