Jelajahi Sumber

物料绑定,检验

wu98hay 1 tahun lalu
induk
melakukan
5f1e0954d3

+ 2 - 2
app/build.gradle

@@ -9,8 +9,8 @@ android {
         applicationId "com.ygtx.emcs"
         minSdk 27
         targetSdk 31
-        versionCode 9
-        versionName "1.2.0"
+        versionCode 1
+        versionName "1.2.1"
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }

+ 3 - 0
app/src/main/AndroidManifest.xml

@@ -92,6 +92,9 @@
         <activity
             android:name="com.ygtx.emcs.activity.BoxBindActivity"
             android:configChanges="keyboardHidden|screenSize"/>
+        <activity
+            android:name="com.ygtx.emcs.activity.BoxCheckActivity"
+            android:configChanges="keyboardHidden|screenSize"/>
 
         <service
             android:name="com.ygtx.emcs.receiver.SocketService"

+ 87 - 14
app/src/main/java/com/ygtx/emcs/activity/BoxBindActivity.java

@@ -3,8 +3,11 @@ package com.ygtx.emcs.activity;
 import static com.ygtx.emcs.comm.BaseApplication.mScanManager;
 import static com.ygtx.emcs.util.Constant.CACHE_BIND_CONFIG;
 
+import android.app.AlertDialog;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.IntentFilter;
+import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
 import android.os.Handler;
@@ -43,6 +46,7 @@ import org.xutils.common.Callback;
 import org.xutils.http.RequestParams;
 import org.xutils.x;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -56,6 +60,8 @@ public class BoxBindActivity extends BaseActivity {
     private ArrayList<StockLineModel> stockLineList = new ArrayList<>();
     private StockModel stockModel = new StockModel();
     private String box_flag;
+    private EditText inputServer;
+    private AlertDialog dialog;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -81,9 +87,14 @@ public class BoxBindActivity extends BaseActivity {
             pushData();
         });
         box_flag = CacheService.getInstance(context).getCache(CACHE_BIND_CONFIG, "box_flag");
-        binding.tvScanTips.setOnClickListener(view->{
-            receiverTask("Box0002");
-        });
+//        binding.tvScanTips.setOnClickListener(view->{
+//            receiverTask("Box0002");
+//        });
+//        binding.tvScanTips.setOnLongClickListener(view->{
+//            receiverTask("090160008120");
+//            return false;
+//        });
+        inputServer = new EditText(this);
     }
 
     private void initView(){
@@ -92,8 +103,13 @@ public class BoxBindActivity extends BaseActivity {
         back.setOnClickListener(view -> {
             finish();
         });
+        closeBtn();
     }
 
+    private void closeBtn(){
+        binding.btnOk.setBackgroundColor(Color.parseColor("#CCCCCC"));
+        binding.btnOk.setEnabled(false);
+    }
 
     public void pushData(){
         String boxCode = binding.tvBoxCode.getText().toString();
@@ -106,7 +122,7 @@ public class BoxBindActivity extends BaseActivity {
         }
         MyProgress progress = MyProgress.getInstance();
         progress.show(context, "提示", "正在上传");
-        RequestParams params = httParams(Constant.STOCK_AUTO_ADD);
+        RequestParams params = httParams(Constant.BOX_ADD);
         params.addParameter("boxCode", boxCode);
         params.addParameter("wmRmsBoxItemList", stockLineList);
         x.http().post(params, new Callback.CommonCallback<JSONObject>() {
@@ -116,10 +132,11 @@ public class BoxBindActivity extends BaseActivity {
                 try {
                     ToastUtils.showToast(context, rs.getString("msg"));
                     if (rs.getInt("code") == 200) {
-                        new Handler().postDelayed(()->{
-                            setResult(RESULT_OK);
-                            finish();
-                        }, 100);
+                        ToastUtils.showToast(context, "绑定成功");
+                        closeBtn();
+                        stockLineList.clear();
+                        binding.tvBoxCode.setText("");
+                        boxItemListViewAdapter.notifyDataSetChanged();
                     }
                 } catch (JSONException e) {
                     e.printStackTrace();
@@ -208,11 +225,13 @@ public class BoxBindActivity extends BaseActivity {
     private StockLineModel parserItem(JSONObject rs) throws Exception {
         mylog.info(rs.toString());
         try {
-            StockLineModel stockLineModel = new StockLineModel();
+            StockLineModel stockLineModel;
             if (rs.getInt("code") == 200 && rs.has("data")) {
                 JSONObject data = rs.getJSONObject("data");
                 ItemModel itemModel = new Gson().fromJson(data.toString(), ItemModel.class);
+                stockLineModel = new StockLineModel();
                 stockLineModel.setBoxCode(itemModel.getBoxCode());
+                stockLineModel.setItemId(itemModel.getItemId());
                 stockLineModel.setItemCode(itemModel.getItemCode());
                 stockLineModel.setItemName(itemModel.getItemName());
                 stockLineModel.setSpecification(itemModel.getSpecification());
@@ -262,6 +281,18 @@ public class BoxBindActivity extends BaseActivity {
             if(barcode.startsWith(box_flag)){
                 binding.tvBoxCode.setText(barcode);
                 getBoxByBoxCodeList(barcode);
+            }else{
+                StockLineModel stockLineModel = getItemData(barcode);
+                if(stockLineModel != null){
+                    StockLineModel existStockLine = isExist(stockLineModel.getItemCode());
+                    if(existStockLine != null){
+                        openQty(stockLineModel, existStockLine);
+                    }else if(stockLineList.size() > 0){
+                        ToastUtils.showToast(context, "不同物料不能放在一个料框");
+                    }else{
+                        openQty(stockLineModel, null);
+                    }
+                }
             }
         }catch (Throwable ex){
             mylog.error("任务发送异常:", ex);
@@ -269,15 +300,57 @@ public class BoxBindActivity extends BaseActivity {
         }
     }
 
+    private void openQty(StockLineModel stockLineModel, StockLineModel existStockLine){
+        AlertDialog.Builder builder = new AlertDialog.Builder(context)
+                .setTitle("请输入数量")
+                .setIcon(R.mipmap.logo)
+                .setView(inputServer)
+                .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        dialog.dismiss();
+                    }
+                })
+                .setPositiveButton(getString(R.string.sure), null);
+        if(dialog==null){
+            dialog = builder.show();
+        }else{
+            dialog.show();
+        }
+        dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
+            public void onClick(View v){
+                String qty = inputServer.getText().toString();
+                if(StringUtils.isEmpty(qty)){
+                    ToastUtils.showToast(context, "请输入数量");
+                    return;
+                }
+                if(existStockLine != null){
+                    BigDecimal existQty = new BigDecimal(existStockLine.getItemQuantity());
+                    BigDecimal currentQty = new BigDecimal(qty);
+                    currentQty = existQty.add(currentQty);
+                    stockLineModel.setItemQuantity(currentQty.toString());
+                    stockLineList.clear();
+                }else{
+                    stockLineModel.setItemQuantity(qty);
+                }
+                stockLineList.add(0, stockLineModel);
+                boxItemListViewAdapter.notifyDataSetChanged();
+                binding.btnOk.setBackgroundColor(Color.parseColor("#03A9E4"));
+                binding.btnOk.setEnabled(true);
+                inputServer.setText("");
+                dialog.dismiss();
+            }
+        });
+    }
+
 
-    private boolean isExist(String boxCode){
+    private StockLineModel isExist(String itemCode){
         for (StockLineModel stockLineModel :stockLineList){
-            if(stockLineModel.getBoxCode().equals(boxCode)){
-                ToastUtils.showToast(this, "料框正在使用");
-                return true;
+            if(stockLineModel.getItemCode().equals(itemCode)){
+                return stockLineModel;
             }
         }
-        return false;
+        return null;
     }
 
 

+ 297 - 0
app/src/main/java/com/ygtx/emcs/activity/BoxCheckActivity.java

@@ -0,0 +1,297 @@
+package com.ygtx.emcs.activity;
+
+import static com.ygtx.emcs.comm.BaseApplication.mScanManager;
+import static com.ygtx.emcs.util.Constant.CACHE_BIND_CONFIG;
+import static com.ygtx.emcs.util.Constant.user;
+
+import android.content.Context;
+import android.content.IntentFilter;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.View;
+import android.widget.ImageView;
+
+import com.google.gson.Gson;
+import com.ygtx.emcs.R;
+import com.ygtx.emcs.activity.adapter.BoxItemListViewAdapter;
+import com.ygtx.emcs.activity.model.StockLineModel;
+import com.ygtx.emcs.activity.model.StockModel;
+import com.ygtx.emcs.comm.BaseActivity;
+import com.ygtx.emcs.comm.CacheService;
+import com.ygtx.emcs.databinding.YgtxBoxCheckBinding;
+import com.ygtx.emcs.util.Constant;
+import com.ygtx.emcs.util.HttpsUtil;
+import com.ygtx.emcs.util.MyProgress;
+import com.ygtx.emcs.util.StringUtils;
+import com.ygtx.emcs.util.ToastUtils;
+
+import org.apache.log4j.Logger;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.xutils.common.Callback;
+import org.xutils.http.RequestParams;
+import org.xutils.x;
+import java.util.ArrayList;
+
+
+public class BoxCheckActivity extends BaseActivity {
+    public static Logger mylog =Logger.getLogger(BoxCheckActivity.class);
+
+    private YgtxBoxCheckBinding binding;
+    private Context context;
+    private BoxItemListViewAdapter boxItemListViewAdapter;
+    private ArrayList<StockLineModel> stockLineList = new ArrayList<>();
+    private StockModel stockModel = new StockModel();
+    private String box_flag;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        binding = YgtxBoxCheckBinding.inflate(getLayoutInflater());
+        setContentView(binding.getRoot());
+        context = this;
+        registerReceiver();
+        initCommonTop2();
+        initView();
+        initData();
+    }
+
+    private void initData(){
+        binding.lvProduct.setOnItemLongClickListener((parent, view1, position, id) -> {
+            stockLineList.remove(position);
+            boxItemListViewAdapter.notifyDataSetChanged();
+            return false;
+        });
+        boxItemListViewAdapter = new BoxItemListViewAdapter(stockLineList, context);
+        binding.lvProduct.setAdapter(boxItemListViewAdapter);
+        binding.btnOk.setOnClickListener(v -> {
+            pushData("ok");
+        });
+        binding.btnNg.setOnClickListener(v -> {
+            pushData("ng");
+        });
+        box_flag = CacheService.getInstance(context).getCache(CACHE_BIND_CONFIG, "box_flag");
+        binding.tvScanTips.setOnClickListener(view->{
+            receiverTask("Box0002");
+        });
+        binding.tvScanTips.setOnLongClickListener(view->{
+            receiverTask("090160008120");
+            return true;
+        });
+    }
+
+    private void initView(){
+        ImageView back = findViewById(R.id.c_iv_common_back);
+        back.setVisibility(View.VISIBLE);
+        back.setOnClickListener(view -> {
+            finish();
+        });
+        binding.tvCheckStatus.setVisibility(View.VISIBLE);
+    }
+
+
+    public void pushData(String status){
+        String boxCode = binding.tvBoxCode.getText().toString();
+        if(Constant.user==null || Constant.user.getUserId() == null){
+            return;
+        }
+        if(StringUtils.isEmpty(boxCode)){
+            ToastUtils.showToast(context, "料框码不能为空");
+            return;
+        }
+        int i = checkItemStatus();
+        if(i == 0 && "ok".equals(status)){
+            ToastUtils.showToast(context, "物料没有全部通过");
+            return;
+        }
+        MyProgress progress = MyProgress.getInstance();
+        progress.show(context, "提示", "正在上传");
+        RequestParams params = httParams(Constant.BOX_CHECK_BIND);
+        params.addParameter("checkUser", user.getUserId());
+        params.addParameter("checkStatus", status);
+        params.addParameter("boxCode", boxCode);
+        params.addParameter("wmRmsBoxItemList", stockLineList);
+        x.http().post(params, new Callback.CommonCallback<JSONObject>() {
+            @Override
+            public void onSuccess(JSONObject rs) {
+                mylog.info(rs.toString());
+                try {
+                    ToastUtils.showToast(context, rs.getString("msg"));
+                    if (rs.getInt("code") == 200) {
+                        ToastUtils.showToast(context, "检验完成");
+                        stockLineList.clear();
+                        binding.tvBoxCode.setText("");
+                        binding.tvCheckStatus.setText("");
+                        boxItemListViewAdapter.notifyDataSetChanged();
+                    }
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+            }
+
+            @Override
+            public void onError(Throwable ex, boolean isOnCallback) {
+                ex.printStackTrace();
+                HttpsUtil.parserError(BoxCheckActivity.this, ex);
+                mylog.error("请求异常:", ex);
+            }
+
+            @Override
+            public void onFinished() {
+                progress.close();
+            }
+
+            @Override
+            public void onCancelled(CancelledException arg0) {
+                mylog.error("onRead:", arg0);
+            }
+        });
+    }
+
+    public void getBoxByBoxCodeList(String boxCode) throws Throwable {
+        if(StringUtils.isEmpty(boxCode)){
+            ToastUtils.showToast(context, "料框编码不能为空");
+            return;
+        }
+        if(Constant.user==null || Constant.user.getUserId() == null){
+            return;
+        }
+        MyProgress progress = MyProgress.getInstance();
+        progress.show(context, "提示", "正在查询");
+        RequestParams params = httParams(Constant.BOX_LIST_VIEW);
+        params.addParameter("boxCode", boxCode);
+        try {
+            x.http().get(params, new Callback.CommonCallback<JSONObject>() {
+                @Override
+                public void onSuccess(JSONObject result) {
+                    try {
+                        parserItemList(result);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        ToastUtils.showToast(context, e.getMessage());
+                    }
+                }
+                @Override
+                public void onError(Throwable ex, boolean isOnCallback) {
+                    ex.printStackTrace();
+                    HttpsUtil.parserError(BoxCheckActivity.this, ex);
+                    mylog.error("请求异常:", ex);
+                }
+                @Override
+                public void onCancelled(CancelledException cex) {
+                    HttpsUtil.parserError(BoxCheckActivity.this, cex);
+                }
+                @Override
+                public void onFinished() {
+                    progress.close();
+                }
+            });
+        }catch (Throwable ex){
+            ex.printStackTrace();
+            throw ex;
+        }
+    }
+
+    private void parserItemList(JSONObject rs) throws Exception {
+        mylog.info(rs.toString());
+        try {
+            if (rs.getInt("code") == 200 && rs.has("data")) {
+                JSONObject data = rs.getJSONObject("data");
+                stockModel = new Gson().fromJson(data.toString(), StockModel.class);
+                if("ok".equals(stockModel.getCheckStatus())){
+                    binding.tvCheckStatus.setTextColor(Color.GREEN);
+                    binding.tvCheckStatus.setText("已通过");
+                }else if("ng".equals(stockModel.getCheckStatus())){
+                    binding.tvCheckStatus.setTextColor(Color.RED);
+                    binding.tvCheckStatus.setText("未通过");
+                }else{
+                    binding.tvCheckStatus.setTextColor(Color.BLUE);
+                    binding.tvCheckStatus.setText("待检验");
+                }
+                stockLineList.clear();
+                stockLineList.addAll(stockModel.getWmRmsBoxItemList());
+                boxItemListViewAdapter.notifyDataSetChanged();
+            }else{
+                throw new Exception(rs.getString("msg"));
+            }
+        }catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+    }
+
+    private void registerReceiver() {
+        if (mScanManager != null) {
+            IntentFilter filter = new IntentFilter();
+            if(Constant.MODEL.contains("ET")) {
+                filter.addAction(ET_SCAN_ACTION);
+            }
+            registerReceiver(mReceiver, filter);
+        }
+    }
+
+    @Override
+    public void receiverTask(String barcode) {
+        System.out.println("扫码:" + barcode);
+        try {
+            if(barcode.startsWith(box_flag)){
+                binding.tvBoxCode.setText(barcode);
+                getBoxByBoxCodeList(barcode);
+            }else{
+                StockLineModel existStockLine = isExist(barcode);
+                if(existStockLine == null){
+                    ToastUtils.showToast(context, "物料不存在");
+                }else{
+                    existStockLine.setCheckUser(user.getUserId().toString());
+                    existStockLine.setSelStatus("ok");
+                    existStockLine.setCheckStatus("ok");
+                    int i = checkItemStatus();
+                    if(i == 1){
+                        new Handler().postDelayed(()->{
+                            pushData("ok");
+                        }, 2000);
+                    }
+                    boxItemListViewAdapter.notifyDataSetChanged();
+                }
+            }
+        }catch (Throwable ex){
+            mylog.error("任务发送异常:", ex);
+            ToastUtils.showToast(context, "发送异常");
+        }
+    }
+
+    private int checkItemStatus(){
+        int i = 0;
+        for (StockLineModel stockLineModel :stockLineList){
+            if("ok".equals(stockLineModel.getSelStatus())){
+                i++;
+            }
+        }
+        if(stockLineList.size() == i){
+            return 1;
+        }
+        return 0;
+    }
+
+    private StockLineModel isExist(String itemCode){
+        for (StockLineModel stockLineModel :stockLineList){
+            if(stockLineModel.getItemCode().equals(itemCode)){
+                return stockLineModel;
+            }
+        }
+        return null;
+    }
+
+
+    @Override
+    protected String getCommonTopTitle() {
+        return "料框检验";
+    }
+
+    @Override
+    protected int getCommonTopICO() {
+        return 0;
+    }
+
+}

+ 16 - 1
app/src/main/java/com/ygtx/emcs/activity/adapter/BoxItemListViewAdapter.java

@@ -1,10 +1,12 @@
 package com.ygtx.emcs.activity.adapter;
 
 import android.content.Context;
+import android.graphics.Color;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.ygtx.emcs.R;
@@ -52,6 +54,8 @@ public class BoxItemListViewAdapter extends BaseAdapter {
             mainHolder.tv_product_code = view.findViewById(R.id.tv_product_code);
             mainHolder.qty = view.findViewById(R.id.tv_qty);
             mainHolder.tv_product_name = view.findViewById(R.id.tv_product_name);
+            mainHolder.img_ok = view.findViewById(R.id.img_ok);
+            mainHolder.img_ng = view.findViewById(R.id.img_ng);
             view.setTag(mainHolder);
         }else{
             mainHolder= (MainHolder) view.getTag();
@@ -65,7 +69,16 @@ public class BoxItemListViewAdapter extends BaseAdapter {
         }else{
             mainHolder.tv_product_name.setVisibility(View.GONE);
         }
-
+        if("ok".equals(stockLineModel.getSelStatus())){
+            mainHolder.img_ng.setVisibility(View.GONE);
+            mainHolder.img_ok.setVisibility(View.VISIBLE);
+//            mainHolder.img_ok.setAlpha(0.5f);
+        }
+        if("ng".equals(stockLineModel.getSelStatus())){
+            mainHolder.img_ng.setVisibility(View.VISIBLE);
+            mainHolder.img_ok.setVisibility(View.GONE);
+//            mainHolder.img_ng.setAlpha(0.5f);
+        }
         return view;
     }
 
@@ -74,6 +87,8 @@ public class BoxItemListViewAdapter extends BaseAdapter {
         public TextView qty;
         public TextView tv_box_code;
         public TextView tv_product_name;
+        public ImageView img_ok;
+        public ImageView img_ng;
     }
 
 }

+ 2 - 1
app/src/main/java/com/ygtx/emcs/activity/adapter/StockLineListViewAdapter.java

@@ -1,10 +1,12 @@
 package com.ygtx.emcs.activity.adapter;
 
 import android.content.Context;
+import android.graphics.Color;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.ygtx.emcs.R;
@@ -69,7 +71,6 @@ public class StockLineListViewAdapter extends BaseAdapter {
         }else{
             mainHolder.tv_product_name.setVisibility(View.GONE);
         }
-
         return view;
     }
 

+ 36 - 0
app/src/main/java/com/ygtx/emcs/activity/model/StockLineModel.java

@@ -2,6 +2,7 @@ package com.ygtx.emcs.activity.model;
 
 public class StockLineModel {
     private Long lineId;
+    private Long itemId;
     private String itemCode;
     private String itemName;
     private String quantity;
@@ -9,6 +10,9 @@ public class StockLineModel {
     private String boxCode;
     private String specification;
     private String unitOfMeasure;
+    private String selStatus;
+    private String checkStatus;
+    private String checkUser;
 
     public Long getLineId() {
         return lineId;
@@ -18,6 +22,14 @@ public class StockLineModel {
         this.lineId = lineId;
     }
 
+    public Long getItemId() {
+        return itemId;
+    }
+
+    public void setItemId(Long itemId) {
+        this.itemId = itemId;
+    }
+
     public String getItemCode() {
         return itemCode;
     }
@@ -73,4 +85,28 @@ public class StockLineModel {
     public void setItemQuantity(String itemQuantity) {
         this.itemQuantity = itemQuantity;
     }
+
+    public String getCheckStatus() {
+        return checkStatus;
+    }
+
+    public void setCheckStatus(String checkStatus) {
+        this.checkStatus = checkStatus;
+    }
+
+    public String getCheckUser() {
+        return checkUser;
+    }
+
+    public void setCheckUser(String checkUser) {
+        this.checkUser = checkUser;
+    }
+
+    public String getSelStatus() {
+        return selStatus;
+    }
+
+    public void setSelStatus(String selStatus) {
+        this.selStatus = selStatus;
+    }
 }

+ 9 - 0
app/src/main/java/com/ygtx/emcs/activity/model/StockModel.java

@@ -14,6 +14,7 @@ public class StockModel implements Serializable {
     private String status;
     private String createBy;
     private String remark;
+    private String checkStatus;
     private List<StockLineModel> rmsTaskInstockLineList = new ArrayList<>();
     private List<StockLineModel> wmRmsBoxItemList = new ArrayList<>();
 
@@ -104,4 +105,12 @@ public class StockModel implements Serializable {
     public void setWmRmsBoxItemList(List<StockLineModel> wmRmsBoxItemList) {
         this.wmRmsBoxItemList = wmRmsBoxItemList;
     }
+
+    public String getCheckStatus() {
+        return checkStatus;
+    }
+
+    public void setCheckStatus(String checkStatus) {
+        this.checkStatus = checkStatus;
+    }
 }

+ 2 - 0
app/src/main/java/com/ygtx/emcs/util/Constant.java

@@ -49,6 +49,8 @@ public class Constant {
     public final static String BOX_VIEW = "mes/wm/box/boxCode";
     public final static String BOX_ITEM_VIEW = "mes/wm/item/queryItem";
     public final static String BOX_LIST_VIEW = "mes/wm/box/boxCodeList";
+    public final static String BOX_ADD = "mes/wm/box/bind";
+    public final static String BOX_CHECK_BIND = "mes/wm/box/checkBind";
 
     public final static String RECEIVER_MSG = "com.qy.msg.RECEIVER";
 

+ 2 - 0
app/src/main/java/com/ygtx/emcs/util/DataUtil.java

@@ -1,6 +1,7 @@
 package com.ygtx.emcs.util;
 
 import com.ygtx.emcs.activity.BoxBindActivity;
+import com.ygtx.emcs.activity.BoxCheckActivity;
 import com.ygtx.emcs.activity.StockInActivity;
 import com.ygtx.emcs.activity.StockOutActivity;
 import com.ygtx.emcs.activity.model.MainModel;
@@ -14,6 +15,7 @@ public class DataUtil {
         addMenu(shops,getMenu(StockInActivity.class,"b8","料框入库","",0),key);
         addMenu(shops,getMenu(StockOutActivity.class,"b4","料框出库","",0),key);
         addMenu(shops,getMenu(BoxBindActivity.class,"b7","物料绑定","",0),key);
+        addMenu(shops,getMenu(BoxCheckActivity.class,"b10","料框检验","",0),key);
         return shops;
     }
 

+ 91 - 0
app/src/main/res/layout/ygtx_box_check.xml

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".activity.StockInActivity"
+    android:background="@color/white"
+    android:orientation="vertical">
+    <include layout="@layout/common_top"/>
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:id="@+id/tv_scan_tips"
+        android:text="请扫描料框码"
+        android:textColor="@color/blue"
+        android:padding="10dp"
+        android:gravity="center"
+        android:textSize="20dp"/>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:padding="5dp">
+        <TextView
+            android:layout_width="120dp"
+            android:layout_height="wrap_content"
+            android:paddingStart="10dp"
+            android:textSize="18dp"
+            android:gravity="left"
+            android:text="料框码:"
+            />
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:id="@+id/tv_box_code"
+            android:paddingStart="10dp"
+            android:textSize="18dp"
+            android:hint="请扫描料框码"
+            android:gravity="left"
+            />
+        <TextView
+            android:layout_width="80dp"
+            android:id="@+id/tv_check_status"
+            android:layout_height="wrap_content"
+            android:paddingEnd="5dp"
+            android:textSize="18dp"
+            android:gravity="right"
+            android:visibility="gone"
+            />
+    </LinearLayout>
+
+    <ListView android:id="@+id/lv_product"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="#00000000"
+        android:dividerHeight="0dip"
+        android:background="@color/gray"
+        android:listSelector="@color/white"
+        android:layout_weight="1"
+        />
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal">
+        <Button
+            android:id="@+id/btn_ng"
+            android:layout_margin="1dp"
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:layout_marginTop="1dp"
+            android:background="@color/salmon"
+            android:layout_weight="1"
+            android:text="失败"
+            android:textColor="@color/white"
+            />
+        <Button
+            android:id="@+id/btn_ok"
+            android:layout_margin="1dp"
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:layout_marginTop="1dp"
+            android:background="@drawable/blu"
+            android:layout_weight="1"
+            android:text="通过"
+            android:textColor="@color/white"
+            />
+    </LinearLayout>
+
+</LinearLayout>

+ 35 - 2
app/src/main/res/layout/ygtx_stock_product_item.xml

@@ -36,7 +36,7 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         app:layout_constraintTop_toBottomOf="@+id/tv_product_name"
-        app:layout_constraintRight_toLeftOf="@+id/tv_qty"
+        app:layout_constraintRight_toLeftOf="@+id/tv_qty_tips"
         app:layout_constraintLeft_toLeftOf="parent"
         android:id="@+id/tv_product_code"
         android:gravity="start"
@@ -46,7 +46,21 @@
         android:background="@color/white"
         />
     <TextView
-        android:layout_width="100dp"
+        android:layout_width="50dp"
+        android:layout_height="wrap_content"
+        app:layout_constraintTop_toBottomOf="@+id/tv_product_name"
+        app:layout_constraintRight_toLeftOf="@+id/tv_qty"
+        android:id="@+id/tv_qty_tips"
+        android:hint="0"
+        android:gravity="center"
+        android:textSize="18dp"
+        android:paddingBottom="5dp"
+        android:text="数量:"
+        android:background="@color/white"
+        />
+    <TextView
+        android:layout_width="wrap_content"
+        android:minWidth="50dp"
         android:layout_height="wrap_content"
         app:layout_constraintTop_toBottomOf="@+id/tv_product_name"
         app:layout_constraintRight_toRightOf="parent"
@@ -57,4 +71,23 @@
         android:paddingBottom="5dp"
         android:background="@color/white"
         />
+    <ImageView
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:paddingTop="5dp"
+        android:id="@+id/img_ok"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        android:visibility="gone"
+        android:src="@mipmap/ok"/>
+    <ImageView
+        android:layout_width="50dp"
+        android:layout_height="30dp"
+        android:paddingStart="5dp"
+        android:id="@+id/img_ng"
+        android:visibility="gone"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+
+        android:src="@mipmap/ng"/>
 </androidx.constraintlayout.widget.ConstraintLayout>

TEMPAT SAMPAH
app/src/main/res/mipmap-hdpi/b10.png


TEMPAT SAMPAH
app/src/main/res/mipmap-hdpi/b8.png


TEMPAT SAMPAH
app/src/main/res/mipmap-hdpi/ng.png


TEMPAT SAMPAH
app/src/main/res/mipmap-hdpi/ok.png