From c5e5c3fd22ca2ea3a2fbca03dc20daab5048f3e4 Mon Sep 17 00:00:00 2001 From: wanghao Date: Tue, 4 Mar 2025 15:20:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 13 +- .../example/haiwei_mom/ClassItemActivity.java | 14 ++ .../example/haiwei_mom/ConfigActivity.java | 14 ++ .../example/haiwei_mom/HomePageActivity.java | 5 +- .../adapter/RawOutDetailAdapter.java | 63 ++++++ .../example/haiwei_mom/data/OutDetail.java | 77 +++++++ .../haiwei_mom/wms/raw/RawOutActivity.java | 127 ++++++++++++ app/src/main/res/drawable/icon_select.png | Bin 0 -> 466 bytes app/src/main/res/drawable/spinner_bg.xml | 16 ++ .../main/res/layout/activity_class_item.xml | 190 ++++++++++++++++++ app/src/main/res/layout/activity_config.xml | 77 +++++++ app/src/main/res/layout/activity_raw_in.xml | 2 +- app/src/main/res/layout/activity_raw_out.xml | 134 ++++++++++++ app/src/main/res/layout/item_raw_out.xml | 87 ++++++++ app/src/main/res/values/array.xml | 9 + app/src/main/res/values/themes.xml | 17 +- 16 files changed, 838 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/example/haiwei_mom/ClassItemActivity.java create mode 100644 app/src/main/java/com/example/haiwei_mom/ConfigActivity.java create mode 100644 app/src/main/java/com/example/haiwei_mom/adapter/RawOutDetailAdapter.java create mode 100644 app/src/main/java/com/example/haiwei_mom/data/OutDetail.java create mode 100644 app/src/main/java/com/example/haiwei_mom/wms/raw/RawOutActivity.java create mode 100644 app/src/main/res/drawable/icon_select.png create mode 100644 app/src/main/res/drawable/spinner_bg.xml create mode 100644 app/src/main/res/layout/activity_class_item.xml create mode 100644 app/src/main/res/layout/activity_config.xml create mode 100644 app/src/main/res/layout/activity_raw_out.xml create mode 100644 app/src/main/res/layout/item_raw_out.xml create mode 100644 app/src/main/res/values/array.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 87d0e94..03c5a4c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> + + + diff --git a/app/src/main/java/com/example/haiwei_mom/ClassItemActivity.java b/app/src/main/java/com/example/haiwei_mom/ClassItemActivity.java new file mode 100644 index 0000000..633d87f --- /dev/null +++ b/app/src/main/java/com/example/haiwei_mom/ClassItemActivity.java @@ -0,0 +1,14 @@ +package com.example.haiwei_mom; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +public class ClassItemActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_class_item); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/haiwei_mom/ConfigActivity.java b/app/src/main/java/com/example/haiwei_mom/ConfigActivity.java new file mode 100644 index 0000000..465f651 --- /dev/null +++ b/app/src/main/java/com/example/haiwei_mom/ConfigActivity.java @@ -0,0 +1,14 @@ +package com.example.haiwei_mom; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +public class ConfigActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_config); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/haiwei_mom/HomePageActivity.java b/app/src/main/java/com/example/haiwei_mom/HomePageActivity.java index 2ad64d5..7863293 100644 --- a/app/src/main/java/com/example/haiwei_mom/HomePageActivity.java +++ b/app/src/main/java/com/example/haiwei_mom/HomePageActivity.java @@ -19,6 +19,7 @@ import com.example.haiwei_mom.wms.product.BindVehicleActivity; import com.example.haiwei_mom.wms.product.ProductInActivity; import com.example.haiwei_mom.wms.product.ProductOutActivity; import com.example.haiwei_mom.wms.raw.RawInActivity; +import com.example.haiwei_mom.wms.raw.RawOutActivity; import com.example.haiwei_mom.wms.raw.RawReturnActivity; import com.example.haiwei_mom.wms.semi.SemiInActivity; import com.example.haiwei_mom.wms.semi.SemiOutActivity; @@ -56,11 +57,13 @@ public class HomePageActivity extends BaseActivity implements ItemClickCall { map.put("成品批量入库", ProductInActivity.class); map.put("成品出库", ProductOutActivity.class); map.put("原材料入库", RawInActivity.class); - map.put("原材料出库", RawReturnActivity.class); + map.put("原材料出库", RawOutActivity.class); map.put("原材料盘点", RawReturnActivity.class); map.put("原材料退库", RawReturnActivity.class); map.put("制品质检", CheckActivity.class); map.put("制品复检", CheckActivity.class); + map.put("系统配置", ConfigActivity.class); + map.put("班组管理", ClassItemActivity.class); } private void initRequest() { diff --git a/app/src/main/java/com/example/haiwei_mom/adapter/RawOutDetailAdapter.java b/app/src/main/java/com/example/haiwei_mom/adapter/RawOutDetailAdapter.java new file mode 100644 index 0000000..4d3613d --- /dev/null +++ b/app/src/main/java/com/example/haiwei_mom/adapter/RawOutDetailAdapter.java @@ -0,0 +1,63 @@ +package com.example.haiwei_mom.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.haiwei_mom.R; +import com.example.haiwei_mom.data.OutDetail; +import com.example.haiwei_mom.databinding.ItemBindVehicleBinding; +import com.example.haiwei_mom.databinding.ItemRawOutBinding; + +import java.util.List; + +public class RawOutDetailAdapter extends RecyclerView.Adapter { + private Context context; + private LayoutInflater inflater; + + + public RawOutDetailAdapter(Context context) { + this.context = context; + inflater=LayoutInflater.from(context); + } + + private List list; + + public void setList(List list) { + this.list = list; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemRawOutBinding binding=DataBindingUtil.inflate(inflater, R.layout.item_raw_out,parent,false); + return new MyViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + var binding = holder.binding; + binding.setVm(list.get(position)); + + } + + @Override + public int getItemCount() { + return list==null?0:list.size(); + } + + public class MyViewHolder extends RecyclerView.ViewHolder{ + private ItemRawOutBinding binding; + + public MyViewHolder(ItemRawOutBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + } +} diff --git a/app/src/main/java/com/example/haiwei_mom/data/OutDetail.java b/app/src/main/java/com/example/haiwei_mom/data/OutDetail.java new file mode 100644 index 0000000..6e4dc92 --- /dev/null +++ b/app/src/main/java/com/example/haiwei_mom/data/OutDetail.java @@ -0,0 +1,77 @@ +package com.example.haiwei_mom.data; + + + +import java.io.Serializable; +import java.util.Date; + + + +/** + * 出库单-物料视图对象 wms_outstock_detail + * + * @author LionLi + * @date 2025-01-08 + */ + +public class OutDetail { + + + + /** + * 表主键 + */ + + private Long outstockDetailId; + + /** + * 出库单号 + */ + + private String outstockCode; + + /** + * 出库单 主键 + */ + + private Long outstockId; + + /** + * 物料id + */ + + private Long materialId; + + /** + * 出库数量 + */ + + private double outstockQty; + private double outSum; + /** + * 物料大类 + */ + + private String materialCategories; + + + private String materialCode; + + private String materialName; + + public double getOutstockQty() { + return outstockQty; + } + + public double getOutSum() { + return outSum; + } + + public String getMaterialCode() { + return materialCode; + } + + public String getMaterialName() { + return materialName; + } +} diff --git a/app/src/main/java/com/example/haiwei_mom/wms/raw/RawOutActivity.java b/app/src/main/java/com/example/haiwei_mom/wms/raw/RawOutActivity.java new file mode 100644 index 0000000..7f494a4 --- /dev/null +++ b/app/src/main/java/com/example/haiwei_mom/wms/raw/RawOutActivity.java @@ -0,0 +1,127 @@ +package com.example.haiwei_mom.wms.raw; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.view.MotionEvent; +import android.view.View; +import android.widget.EditText; + +import com.example.haiwei_mom.R; +import com.example.haiwei_mom.adapter.RawOutDetailAdapter; +import com.example.haiwei_mom.base.BaseActivity; +import com.example.haiwei_mom.base.MyRecultCall; +import com.example.haiwei_mom.base.MyResult; +import com.example.haiwei_mom.data.OutDetail; +import com.example.haiwei_mom.databinding.ActivityRawOutBinding; +import com.google.gson.reflect.TypeToken; +import com.lzy.okgo.OkGo; +import com.lzy.okgo.model.Response; + +import java.util.List; + +public class RawOutActivity extends BaseActivity implements View.OnFocusChangeListener { + private ActivityRawOutBinding binding; + private RawOutDetailAdapter rawOutDetailAdapter; + private EditText rawOutCodeView; + private EditText rawOutLocationView; + private EditText rawOutGoodsView; + private EditText focusView; + private boolean sanState = true; + + @SuppressLint("ClickableViewAccessibility") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + binding = DataBindingUtil.setContentView(this, R.layout.activity_raw_out); + rawOutCodeView = binding.rawOutCode; + rawOutCodeView.setOnTouchListener((v, event) -> { + if (event.getAction() == MotionEvent.ACTION_UP) { + // 获取触摸的位置 + int x = (int) event.getX(); + if (x >= 464) { + selectOutOrderCode(binding.rawOutCode.getText().toString()); + return true; + } + } + return false; + }); + + rawOutLocationView = binding.rawOutLocation; + rawOutLocationView.setOnFocusChangeListener(this); + rawOutGoodsView = binding.rawOutGoods; + rawOutGoodsView.setOnFocusChangeListener(this); + + rawOutDetailAdapter = new RawOutDetailAdapter(this); + binding.setDetailAdapter(rawOutDetailAdapter); + } + + private void selectOutOrderCode(String orderCode) { + OkGo.post(url + "/wms/pda/raw/outSelectByOrderCode").params("orderCode", orderCode).execute(new MyRecultCall(dialog, this) { + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + var body = response.body(); + if (body.getCode() == 200) { + List list = gson.fromJson(body.getDataJson(), new TypeToken>() { + }.getType()); + rawOutDetailAdapter.setList(list); + rawOutDetailAdapter.notifyDataSetChanged(); + sanState = false; + return; + } + sanState = true; + myToastUitls.show(body.getMsg()); + } + }); + } + + + @Override + public void getScannerData(String data) { + super.getScannerData(data); + + if (sanState) { + rawOutCodeView.setText(data); + selectOutOrderCode(data); + return; + } + if (focusView == rawOutLocationView) { + rawOutLocationView.setText(data); + } else if (focusView == rawOutGoodsView) { + rawOutGoodsView.setText(data); + selectBacthCode(data, rawOutLocationView.getText().toString()); + } + + + } + + // 查询物料 + private void selectBacthCode(String bacthCode, String locationCode) { + OkGo.post(url + "/wms/pda/raw/selectInVentoryByBatchCode").params("bacthCode", bacthCode).params("locationCode", locationCode).execute(new MyRecultCall(dialog, this) { + @Override + public void onSuccess(Response response) { + super.onSuccess(response); + var body = response.body(); + if (body.getCode() == 200) { + List list = gson.fromJson(body.getDataJson(), new TypeToken>() { + }.getType()); + rawOutDetailAdapter.setList(list); + rawOutDetailAdapter.notifyDataSetChanged(); + return; + } + myToastUitls.show(body.getMsg()); + } + }); + } + + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (hasFocus) { + focusView = (EditText) v; + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/icon_select.png b/app/src/main/res/drawable/icon_select.png new file mode 100644 index 0000000000000000000000000000000000000000..d6127f1aac1aba0b02a70b3f3c919046b74c5e1a GIT binary patch literal 466 zcmV;@0WJQCP)Px$j7da6R9Hvtl`l*JQ5?s=Y>*()XgC6mMx$Y((XjZC4Nt;N0+WCeP{KI^j)2I9 zJc~3M2^x(?BQR++5+vBpy_;;D0{7QZ-nHA_@B8`eyS?{w$g(Wsgr9>8@CJATyaC?8 z?*=xT4M;MH>2zxA104tiK-+CNolaHm-lupnnJ5zL_1YE*m&>KVgTdgRyo0--*X!Y- zShPjpu~b4V7TcS3bQ#rZHMA+UB#|Tpq9`8B(A`p(%+-B!ZV}_2{goz+$n$ zB_Wv4=Y}MFJ|8|Ph1ct~CcvggqY-X08AAfE^*X}gu;z?r1KWhpP6w4rMKh2c$mMdl zNF;Qf)h)o%p2}r(yWOL~@pv5fg@P_PJ7h?J4P2#C7>~z$0ijR`@2!?@xG90J*$jjb ztX3-($nAE6Qi?Ob|9=HodVerLKA%^CBuT<~G-?QLs(~$`(P-eU*;Ib7(`g8TU>I&m zfDPaMwD2rRrr?$Zmdm9A_INy}5im{N88mzi?SSrPZ~@-HH>^M3p>a!Ny#N3J07*qo IM6N<$f@Z|fm;e9( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/spinner_bg.xml b/app/src/main/res/drawable/spinner_bg.xml new file mode 100644 index 0000000..c9e5224 --- /dev/null +++ b/app/src/main/res/drawable/spinner_bg.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_class_item.xml b/app/src/main/res/layout/activity_class_item.xml new file mode 100644 index 0000000..61d7425 --- /dev/null +++ b/app/src/main/res/layout/activity_class_item.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +