From 12f0cfe16d486ed7d2558ab1b94a8e8ea560e574 Mon Sep 17 00:00:00 2001 From: hwf453 Date: Thu, 21 Sep 2023 09:17:28 +0800 Subject: [PATCH] 2.2.4 version publish --- app/build.gradle | 5 +- .../zhdcoa/ui/activity/HjpdActivity.java | 701 ------------------ .../rehome/zhdcoa/ui/activity/HjpdActivity.kt | 442 +++++++++++ .../zhdcoa/ui/activity/KcpdTypeActivity.java | 2 +- .../zhdcoa/ui/activity/LoginActivity.kt | 4 +- .../activity/RealTimeKcpdHistoryActivity.kt | 7 +- .../zhdcoa/ui/fragment/YunXingFragment.java | 7 +- app/src/main/res/layout/activity_hjpd.xml | 12 +- 8 files changed, 467 insertions(+), 713 deletions(-) delete mode 100644 app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.java create mode 100644 app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.kt diff --git a/app/build.gradle b/app/build.gradle index 7ea2544..9ffc7bf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,12 +6,13 @@ plugins { android { namespace 'com.rehome.zhdcoa' compileSdk 34 + defaultConfig { applicationId "com.rehome.zhdcoa" minSdk 24 targetSdk 34 - versionCode 7 - versionName "2.2.3" + versionCode 8 + versionName "2.2.4" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //每个应用拥有不同的authorities,防止相同的在同一个手机上无法同时安装 diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.java deleted file mode 100644 index 9e2f77c..0000000 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.java +++ /dev/null @@ -1,701 +0,0 @@ -package com.rehome.zhdcoa.ui.activity; - - -import android.content.DialogInterface; -import android.content.Intent; -import android.media.Ringtone; -import android.media.RingtoneManager; -import android.net.Uri; -import android.os.Bundle; - -import androidx.appcompat.app.AlertDialog; - -import android.text.TextUtils; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.Button; -import android.widget.CheckBox; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.ListView; -import android.widget.Spinner; -import android.widget.TextView; - -import com.rehome.zhdcoa.Contans; -import com.rehome.zhdcoa.R; -import com.rehome.zhdcoa.adapter.KcpdAdapter; -import com.rehome.zhdcoa.adapter.RealTimeKcpdAdapter; -import com.rehome.zhdcoa.base.BaseActivity; -import com.rehome.zhdcoa.base.BaseActivity2; -import com.rehome.zhdcoa.bean.DagerEnterApplyBaseBean; -import com.rehome.zhdcoa.bean.OneLevelShelvesBean; -import com.rehome.zhdcoa.bean.RealTimeKcpdInfo; -import com.rehome.zhdcoa.bean.SaveRealTimeKcpdInfo; -import com.rehome.zhdcoa.bean.TwoLevelShelvesBean; -import com.rehome.zhdcoa.entity.KcpdInfo; -import com.rehome.zhdcoa.entity.StatusInfo; -import com.rehome.zhdcoa.utils.GsonUtils; -import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NohttpUtils; -import com.rehome.zhdcoa.utils.SPUtils; -import com.rehome.zhdcoa.utils.UiUtlis; -import com.rehome.zhdcoa.weiget.ListViewForScrollView; -import com.rehome.zhdcoa.weiget.PdDialog; -import com.rehome.zhdcoa.weiget.RealTimePdDialog; -import com.yolanda.nohttp.NoHttp; -import com.yolanda.nohttp.RequestMethod; -import com.yolanda.nohttp.rest.Request; -import com.yolanda.nohttp.rest.Response; - -import java.util.ArrayList; -import java.util.List; - -import com.rehome.zhdcoa.App; - -public class HjpdActivity extends BaseActivity implements RealTimeKcpdAdapter.Callback { - - EditText et_hgtm; - TextView tv_sys; - Button btn_query; - ListViewForScrollView lv; - TextView et_xm; - TextView et_ms; - TextView et_sl; - EditText et_sjsl; - Button btn_save; - Button btn_cancel; - Button btn_itqz; - LinearLayout ll; - EditText etXmh; - TextView tvSyswz; - Spinner spBz; - - Spinner spinnerSon; - - List spinnerSonList = new ArrayList(); - - private void findView() { - et_hgtm = findViewById(R.id.et_hgtm); - tv_sys = findViewById(R.id.tv_sys); - btn_query = findViewById(R.id.btn_query); - lv = findViewById(R.id.lv); - et_xm = findViewById(R.id.et_xm); - et_ms = findViewById(R.id.et_ms); - et_sl = findViewById(R.id.et_sl); - et_sjsl = findViewById(R.id.et_sjsl); - btn_save = findViewById(R.id.btn_save); - btn_cancel = findViewById(R.id.btn_cancel); - btn_itqz = findViewById(R.id.btn_itqz); - ll = findViewById(R.id.ll); - etXmh = findViewById(R.id.et_xmh); - tvSyswz = findViewById(R.id.tv_syswz); - spBz = findViewById(R.id.sp_bz); - spinnerSon = findViewById(R.id.spinnerSon); - - btn_cancel.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - removeView(); - } - }); - btn_query.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - //String spinnerSonSelectItem = spinnerSon.getSelectedItem(); - if (!TextUtils.isEmpty(UiUtlis.getText(et_hgtm))) { - requestData("加载中..."); - UiUtlis.hideInput(et_hgtm, context); - } else { - showToast("请扫码母货架号"); - } - } - }); - btn_save.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (selectItem != -1) { - if (!TextUtils.isEmpty(et_sjsl.getText().toString())) { - for (int i = 0; i < infos.size(); i++) { - if (infos.get(i).isFlag()) { - //判断是否已经盘点 - if (infos.get(i).getISPD().equals("1")) { - showPdDialog(infos.get(i)); - } else { - //如果没有盘点,就盘点 - scData(addJson(infos.get(i))); - } - } - } - } else { - showToast("你还没有输入盘点数量"); - } - } else { - //如果没有选中,点击保存。 - showToast("请选择要盘点的物资"); -// String spinnerSonSelectItemStr = spinnerSon.getSelectedItem().toString(); -// Request request = NoHttp.createStringRequest(Contans.IP + Contans.REAL_TIME_PD); -// request.add("UDBINNUM", spinnerSonSelectItemStr); -// request.add("ITEMNUM", UiUtlis.getText(etXmh)); -// request.add("BINNUM", UiUtlis.getText(et_hgtm)); - -// if (!UiUtlis.getText(et_sjsl).isEmpty() && !UiUtlis.getText(et_hgtm).isEmpty()) { -// boolean ispd = false; -// if (infos.size() != 0) { -// for (RealTimeKcpdInfo.RowsBean kcpd : infos) { -// -// if (kcpd.getISPD().equals("1") && kcpd.getBINNUM().equals(spinnerSon.getSelectedItem().toString())) { -// ispd = true; -// break; -// } -// } -// playSound(); -// AlertDialog.Builder builder = new AlertDialog.Builder(context); -// builder.setCancelable(false); -// builder.setTitle("提示"); -// builder.setMessage("该物资未在该货架下,确定保存吗?"); -// builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { -// @Override -// public void onClick(DialogInterface dialog, int which) { -// dialog.dismiss(); -// } -// }); -// final boolean finalIspd = ispd; -// builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { -// @Override -// public void onClick(DialogInterface dialog, int which) { -// -// //如果已经盘点。就覆盖。 -// if (finalIspd) { -// showPdDialog(true); -// } else { -// String json = addJson("4", infos.get(0)); -// scData(json); -// } -// dialog.dismiss(); -// -// } -// }); -// builder.create().show(); -// } -// } else { -// showToast("你还有数据未输入"); -// } - } - } - }); - tv_sys.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(HjpdActivity.this, MipcaActivityCapture.class); - startActivityForResult(intent, 1); - } - }); - tvSyswz.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent1 = new Intent(HjpdActivity.this, MipcaActivityCapture.class); - startActivityForResult(intent1, 2); - } - }); - btn_itqz.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - etXmh.setText("IT"); - //etXmh.setSelection(2); - } - }); - } - - private RealTimeKcpdAdapter adapter; - private List infos; - private View headView; - - private String pdid; - private int selectItem = -1; - - - @Override - public int getLayoutId() { - return R.layout.activity_hjpd; - } - - @Override - public void initView() { - findView(); - } - - - public void initData() { - pdid = (String) getIntent().getExtras().get(Contans.KEY_PDID); - - initToolbar("实时库存盘点", "盘点记录", new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(context, RealTimeKcpdHistoryActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); - startActivity(intent); - } - }); - - -// et_sjsl.setEnabled(false); -// et_hgtm.setText("IT"); - infos = new ArrayList<>(); - headView = View.inflate(this, R.layout.list_item1, null); - headView.findViewById(R.id.cb_isprint).setEnabled(false); - headView.findViewById(R.id.head).setVisibility(View.VISIBLE); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - switch (requestCode) { - case 1: - if (resultCode == RESULT_OK) { - Bundle bundle = data.getExtras(); - String resultText = bundle.getString("result"); - et_hgtm.setText(resultText); - if (!TextUtils.isEmpty(resultText)) { - getSpinnerParentData(resultText); - } - } - break; - case 2: - if (resultCode == RESULT_OK) { - Bundle bundle = data.getExtras(); - String resultText = bundle.getString("result"); - etXmh.setText(resultText); - } - break; - } - } - - //CheckBox点击事件 - @Override - public void cbClick(View view) { - int index = (int) view.getTag(); - CheckBox cb = (CheckBox) view; - if (!cb.isChecked()) { - infos.get(index).setFlag(false); - clearView(); - } else { - infos.get(index).setFlag(true); - for (int a = 0; a < infos.size(); a++) { - if (a != index) { - infos.get(a).setFlag(false); - } - } - updateView(index); - adapter.notifyDataSetChanged(); - } - } - - private void showPdDialog(RealTimeKcpdInfo.RowsBean kcpd) { - final RealTimePdDialog dialog = new RealTimePdDialog(this); - dialog.setFgOnClick(new View.OnClickListener() { - @Override - public void onClick(View v) { - scData(addJson(kcpd)); - dialog.close(); - } - }); - - - dialog.setQxOnClick(new View.OnClickListener() { - @Override - public void onClick(View v) { - dialog.close(); - } - }); - } - - private void requestData(String msg) { - //String spinnerSonSelectItemStr = spinnerSon.getSelectedItem().toString(); - Request request = NoHttp.createStringRequest(Contans.IP + Contans.REAL_TIME_PD); - if (spinnerSon.getSelectedItem() != null && (!TextUtils.isEmpty(spinnerSon.getSelectedItem().toString()))) { - request.add("UDBINNUM", spinnerSon.getSelectedItem().toString()); - } else { - request.add("UDBINNUM", ""); - } - request.add("ITEMNUM", UiUtlis.getText(etXmh)); - request.add("BINNUM", UiUtlis.getText(et_hgtm)); - NohttpUtils.getInstance().add(HjpdActivity.this, 0, request, callback, true, true, msg); - } - - //上传数据 - private void scData(String json) { - Request request = NoHttp.createStringRequest(Contans.IP + Contans.REAL_TIME_PDJHSC, RequestMethod.POST); - request.setDefineRequestBodyForJson(json); - NohttpUtils.getInstance().add(HjpdActivity.this, 1, request, callback, true, true, UiUtlis.getString(context, R.string.upload)); - } - - private final HttpListener callback = new HttpListener() { - @Override - public void onSucceed(int what, Response response) { - String result = response.get(); - showLog(result); - switch (what) { - case 0: - RealTimeKcpdInfo realTimeKcpdInfo = GsonUtils.GsonToBean(result, RealTimeKcpdInfo.class); - if (realTimeKcpdInfo != null) { - if (realTimeKcpdInfo.isFlag()) { -// if (TextUtils.isEmpty(UiUtlis.getText(et_hgtm))) { -// playSound(); -// AlertDialog.Builder builder = new AlertDialog.Builder(context); -// builder.setCancelable(false); -// builder.setTitle("提示"); -// builder.setMessage("该货柜下无此物资"); -// builder.setPositiveButton("返回", new DialogInterface.OnClickListener() { -// @Override -// public void onClick(DialogInterface dialog, int which) { -// dialog.dismiss(); -// } -// }); -// builder.create().show(); -// } - infos.clear(); - infos.addAll(realTimeKcpdInfo.getDatas()); - setListData(); - } else { - infos.clear(); - if (adapter != null) { - if (lv.getHeaderViewsCount() == 1) { - lv.removeHeaderView(headView); - } - adapter.notifyDataSetChanged(); - } - showToast("没有该货柜信息"); - ll.setVisibility(View.GONE); - } - } else { - showToast(UiUtlis.getString(context, R.string.data_error)); - } - break; - case 1: - DagerEnterApplyBaseBean info = GsonUtils.GsonToBean(response.get(), DagerEnterApplyBaseBean.class); - if (info != null) { - if (info.isFlag()) { - showToast("盘点成功"); -// if (!UiUtlis.getText(etXmh).isEmpty()) { -// removeView(); -// } else { -// requestData("刷新.."); -// } - requestData("刷新.."); - playSound(); - } else { - showToast("盘点失败"); - } - } else { - showToast(UiUtlis.getString(context, R.string.data_error)); - } - break; - } - } - - @Override - public void onFailed(int what, Response response) { - System.out.println("错误" + what + "==" + response.get()); - - } - }; - - private void setListData() { - - ll.setVisibility(View.VISIBLE); - if (lv.getHeaderViewsCount() != 1) { - lv.addHeaderView(headView, null, false); - } - if (adapter == null) { - adapter = new RealTimeKcpdAdapter(infos, context, this); - lv.setAdapter(adapter); - lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView adapterView, View view, int i, long l) { - if (i != 0) { - if (infos.get(i - 1).isFlag() == true) { - infos.get(i - 1).setFlag(false); - clearView(); - } else { - infos.get(i - 1).setFlag(true); - for (int a = 0; a < infos.size(); a++) { - if (a != i - 1) { - infos.get(a).setFlag(false); - } - } - updateView(i - 1); - } - } - adapter.notifyDataSetChanged(); - } - }); - } else { - clearView(); - adapter.notifyDataSetChanged(); - } - } - - private void updateView(int index) { - selectItem = index; - et_xm.setText(infos.get(index).getITEMNUM()); - et_ms.setText(infos.get(index).getDESCRIPTION()); - et_sl.setText(infos.get(index).getCURBAL() + ""); - et_sjsl.setText(infos.get(index).getCURBAL() + ""); - et_sjsl.setEnabled(true); - //et_hgtm.setText(infos.get(index).getBINNUM()); - } - - private void clearView() { - selectItem = -1; - spBz.setSelection(0); - et_xm.setText(""); - et_ms.setText(""); - et_sl.setText(""); - et_sjsl.setText(""); -// et_sjsl.setEnabled(false); - } - - private void removeView() { - selectItem = -1; - et_xm.setText(""); - et_ms.setText(""); - et_sl.setText(""); - et_sjsl.setText(""); -// et_sjsl.setEnabled(false); - infos.clear(); - if (adapter != null) { - adapter.notifyDataSetChanged(); - lv.removeHeaderView(headView); - } - etXmh.setText(""); - ll.setVisibility(View.INVISIBLE); - } - - private String toJson() { - String json = ""; -// if (selectItem != -1) { -// KcpdInfo info = new KcpdInfo(); -// List list = new ArrayList<>(); -// KcpdInfo.kcpd kcpd = infos.get(selectItem); -// kcpd.setPdsl(et_sjsl.getText().toString()); -// kcpd.setPdr(App.getInstance().getUserInfo().getManid()); -// kcpd.setSjpdzt(sjpdzt); -// kcpd.setBz((String) spBz.getSelectedItem()); -// kcpd.setUname(App.getInstance().getUserInfo().getManid()); -// list.add(kcpd); -// info.setRows(list); -// info.setTotal(1); -// json = GsonUtils.GsonString(info); -// } - return json; - } - - private String addJson(RealTimeKcpdInfo.RowsBean kcpd) { - String json = ""; - SaveRealTimeKcpdInfo info = new SaveRealTimeKcpdInfo(); - info.setPDSL(et_sjsl.getText().toString()); - info.setPDR(App.getInstance().getUserInfo().getManid()); - info.setITEMNUM(kcpd.getITEMNUM()); - info.setBZ((String) spBz.getSelectedItem()); - info.setLOTNUM(kcpd.getLOTNUM()); - info.setBINNUM(kcpd.getBINNUM()); - json = GsonUtils.GsonString(info); - return json; - } - - private void playSound() { - Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); - Ringtone r = RingtoneManager.getRingtone(this, sound); - r.play(); -// MediaPlayer player= MediaPlayer.create(context, R.raw.ylzs); -// player.setLooping(false); -// player.setVolume(1.0f, 1.0f); -// player.start(); - } - - @Override - public void onPointerCaptureChanged(boolean hasCapture) { - super.onPointerCaptureChanged(hasCapture); - } - - //获取母货架 - private void getSpinnerParentData(String qccode) { - String url = Contans.IP + Contans.GET_SPINNER_PARENT_UDBIN_URL; - Request request = NoHttp.createStringRequest(url, RequestMethod.GET); - request.add("QCCODE", qccode); - NohttpUtils.getInstance().add(HjpdActivity.this, 2, request, new HttpListener() { - @Override - public void onSucceed(int what, Response response) { - if (what == 2) { - String result = response.get(); - showLog(result); - OneLevelShelvesBean oneLevelShelvesBean = GsonUtils.GsonToBean(result, OneLevelShelvesBean.class); - if (oneLevelShelvesBean != null) { - if (oneLevelShelvesBean.isFlag() && oneLevelShelvesBean.getDatas() != null && oneLevelShelvesBean.getDatas().size() > 0) { - String BINNUM = oneLevelShelvesBean.getDatas().get(0).getBINNUM(); - getSpinnerSonData(BINNUM); - } else { - showToast("查询不到子货架号,请确认母货架号是否正确"); - } - } - } - } - - @Override - public void onFailed(int what, Response response) { - System.out.println("错误" + what + "==" + response.get()); - - } - }, true, true, UiUtlis.getString(context, R.string.loading)); - } - - //获取子货架 - private void getSpinnerSonData(String binnum) { - String url = Contans.IP + Contans.GET_SPINNER_SON_UDBIN_URL; - Request request = NoHttp.createStringRequest(url, RequestMethod.GET); - request.add("BINNUM", binnum); - NohttpUtils.getInstance().add(HjpdActivity.this, 3, request, new HttpListener() { - @Override - public void onSucceed(int what, Response response) { - if (what == 3) { - String result = response.get(); - showLog(result); - TwoLevelShelvesBean twoLevelShelvesBean = GsonUtils.GsonToBean(result, TwoLevelShelvesBean.class); - if (twoLevelShelvesBean != null) { - if (twoLevelShelvesBean.isFlag() && twoLevelShelvesBean.getDatas() != null && twoLevelShelvesBean.getDatas().size() > 0) { - spinnerSonList.clear(); - spinnerSonList.addAll(twoLevelShelvesBean.getDatas()); - - // 在我们的这个位置的话创建我们的数组 - String[] arrayModel = new String[spinnerSonList.size()]; - - ArrayList listText = new ArrayList(); - spinnerSonList.forEach(item -> { - listText.add(item.getTEXT()); - }); - listText.toArray(arrayModel); - - // 然后的话创建一个我们的一个数组适配器并且的话这个数组适配器使我们的字符串类型的 - ArrayAdapter adapter = new ArrayAdapter(HjpdActivity.this, android.R.layout.simple_spinner_item, arrayModel); - // 设置我们的数组下拉时的选项的样式 - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - spinnerSon.setAdapter(adapter); - - } - } - } - } - - @Override - public void onFailed(int what, Response response) { - System.out.println("错误" + what + "==" + response.get()); - - } - }, true, true, UiUtlis.getString(context, R.string.loading)); - } -} - -/** - * 1K101 - * 1K101-013 - * IT63966 - *

- * 1K101 - * 1K101-043 - * IT63867 - *

- * 1K102 - * 1K101-013 - * IT62209 - * IT62210 - * IT62211 - * IT60669 - *

- * 1K103 - * 1K101-034 - * IT16159 - *

- * 1K101 - * 1K101-043 - * IT63867 - *

- * 1K102 - * 1K101-013 - * IT62209 - * IT62210 - * IT62211 - * IT60669 - *

- * 1K103 - * 1K101-034 - * IT16159 - *

- * 1K101 - * 1K101-043 - * IT63867 - *

- * 1K102 - * 1K101-013 - * IT62209 - * IT62210 - * IT62211 - * IT60669 - *

- * 1K103 - * 1K101-034 - * IT16159 - *

- * 1K101 - * 1K101-043 - * IT63867 - *

- * 1K102 - * 1K101-013 - * IT62209 - * IT62210 - * IT62211 - * IT60669 - *

- * 1K103 - * 1K101-034 - * IT16159 - *

- * 1K101 - * 1K101-043 - * IT63867 - *

- * 1K102 - * 1K101-013 - * IT62209 - * IT62210 - * IT62211 - * IT60669 - *

- * 1K103 - * 1K101-034 - * IT16159 - */ - -/** - * 1K101 - * 1K101-043 - * IT63867 - */ - -/** - * 1K102 - * 1K101-013 - * IT62209 - * IT62210 - * IT62211 - * IT60669 - */ - - -/** - * 1K103 - * 1K101-034 - * IT16159 - */ - diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.kt new file mode 100644 index 0000000..3c999dd --- /dev/null +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/HjpdActivity.kt @@ -0,0 +1,442 @@ +package com.rehome.zhdcoa.ui.activity + +import android.content.Intent +import android.media.RingtoneManager +import android.text.TextUtils +import android.view.View +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.CheckBox +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import com.rehome.zhdcoa.App +import com.rehome.zhdcoa.Contans +import com.rehome.zhdcoa.R +import com.rehome.zhdcoa.adapter.RealTimeKcpdAdapter +import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding +import com.rehome.zhdcoa.bean.DagerEnterApplyBaseBean +import com.rehome.zhdcoa.bean.OneLevelShelvesBean +import com.rehome.zhdcoa.bean.RealTimeKcpdInfo +import com.rehome.zhdcoa.bean.SaveRealTimeKcpdInfo +import com.rehome.zhdcoa.bean.TwoLevelShelvesBean +import com.rehome.zhdcoa.databinding.ActivityHjpdBinding +import com.rehome.zhdcoa.utils.GsonUtils +import com.rehome.zhdcoa.utils.HttpListener +import com.rehome.zhdcoa.utils.NohttpUtils +import com.rehome.zhdcoa.utils.UiUtlis +import com.rehome.zhdcoa.weiget.RealTimePdDialog +import com.yolanda.nohttp.NoHttp +import com.yolanda.nohttp.RequestMethod +import com.yolanda.nohttp.rest.Response + +/** + * Create By HuangWenFei + * 创建日期:2023-09-04 10:06 + * 描述:移动仓库-库存盘点-实时盘点 + */ + +class HjpdActivity : BaseActivityOaToolbarViewBinding(), + RealTimeKcpdAdapter.Callback { + + var spinnerSonList: MutableList = mutableListOf() + + private lateinit var adapter: RealTimeKcpdAdapter + private val infos: MutableList = mutableListOf() + private lateinit var headView: View + private var selectItem = -1 + + private lateinit var launcherResultMHJ: ActivityResultLauncher + private lateinit var launcherResultZHJ: ActivityResultLauncher + override fun getViewBinding() = ActivityHjpdBinding.inflate(layoutInflater) + + override fun getToolbar() = binding.toolbarView.toolbar + + override fun initView() { + launcherResultMHJ = createActivityResultLauncherMHJ() + launcherResultZHJ = createActivityResultLauncherZHJ() + binding.btnCancel.setOnClickListener(View.OnClickListener { removeView() }) + binding.btnQuery.setOnClickListener(View.OnClickListener { //String spinnerSonSelectItem = spinnerSon.getSelectedItem(); + if (!TextUtils.isEmpty(UiUtlis.getText(binding.etHgtm))) { + requestData("加载中...") + UiUtlis.hideInput(binding.etHgtm, context) + } else { + showToast("请扫码母货架号") + } + }) + binding.btnSave.setOnClickListener(View.OnClickListener { + if (selectItem != -1) { + if (!TextUtils.isEmpty(binding.etSjsl.getText().toString())) { + for (i in infos.indices) { + if (infos[i].isFlag) { + //判断是否已经盘点 + if (infos[i].ispd == "1") { + showPdDialog(infos[i]) + } else { + //如果没有盘点,就盘点 + scData(addJson(infos[i])) + } + } + } + } else { + showToast("你还没有输入盘点数量") + } + } else { + //如果没有选中,点击保存。 + showToast("请选择要盘点的物资") + } + }) + binding.tvSys.setOnClickListener(View.OnClickListener { + val intentMHJ = Intent(this, MipcaActivityCapture::class.java) + launcherResultMHJ.launch(intentMHJ) + }) + binding.tvSyswz.setOnClickListener(View.OnClickListener { + val intentZHJ = Intent(this, MipcaActivityCapture::class.java) + launcherResultZHJ.launch(intentZHJ) + }) + binding.btnItqz.setOnClickListener(View.OnClickListener { + binding.etXmh.setText("IT") + }) + setListData() + } + + override fun initData() { + initToolbar("实时库存盘点", "盘点记录") { + val intent = Intent(context, RealTimeKcpdHistoryActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + startActivity(intent) + } + + headView = View.inflate(this, R.layout.list_item1, null) + headView.findViewById(R.id.cb_isprint).isEnabled = false + headView.findViewById(R.id.head).visibility = View.VISIBLE + + } + + //创建一个ActivityResultLauncher + private fun createActivityResultLauncherMHJ(): ActivityResultLauncher { + //kotlin写法 + return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + val resultIntent = it.data + val resultCode = it.resultCode + if (resultCode == RESULT_OK) { + val resultText = resultIntent?.getStringExtra("result") ?: "" + binding.etHgtm.setText(resultText) + if (!TextUtils.isEmpty(resultText)) { + getSpinnerParentData(resultText) + } + } + } + } + + //创建一个ActivityResultLauncher + private fun createActivityResultLauncherZHJ(): ActivityResultLauncher { + //kotlin写法 + return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + val resultIntent = it.data + val resultCode = it.resultCode + if (resultCode == RESULT_OK) { + val resultText = resultIntent?.getStringExtra("result") ?: "" + binding.etXmh.setText(resultText) + } + } + } + + private fun requestData(msg: String) { + val request = NoHttp.createStringRequest(Contans.IP + Contans.REAL_TIME_PD) + if (binding.spinnerSon.selectedItem != null && !TextUtils.isEmpty( + binding.spinnerSon.selectedItem.toString() + ) + ) { + request.add("UDBINNUM", binding.spinnerSon.selectedItem.toString()) + } else { + request.add("UDBINNUM", "") + } + request.add("ITEMNUM", UiUtlis.getText(binding.etXmh)) + request.add("BINNUM", UiUtlis.getText(binding.etHgtm)) + NohttpUtils.getInstance().add(this, 0, request, callback, true, true, msg) + } + + private fun scData(json: String) { + val request = + NoHttp.createStringRequest(Contans.IP + Contans.REAL_TIME_PDJHSC, RequestMethod.POST) + request.setDefineRequestBodyForJson(json) + NohttpUtils.getInstance().add( + this, + 1, + request, + callback, + true, + true, + UiUtlis.getString(context, R.string.upload) + ) + } + + private val callback: HttpListener = object : HttpListener { + + override fun onSucceed(what: Int, response: Response?) { + val result = response?.get() + showLog(result?:"") + when (what) { + 0 -> { + val realTimeKcpdInfo = GsonUtils.GsonToBean( + result, + RealTimeKcpdInfo::class.java + ) + if (realTimeKcpdInfo != null) { + if (realTimeKcpdInfo.isFlag) { + infos.clear() + infos.addAll(realTimeKcpdInfo.datas) + if(infos.size>0){ + binding.ll.visibility = View.VISIBLE + if (binding.lv.headerViewsCount != 1) { + binding.lv.addHeaderView(headView, null, false) + } + adapter.notifyDataSetChanged() + }else{ + infos.clear() + if (binding.lv.headerViewsCount == 1) { + binding.lv.removeHeaderView(headView) + } + adapter.notifyDataSetChanged() + binding.ll.visibility = View.GONE + clearView() + } + } else { + infos.clear() + if (binding.lv.headerViewsCount == 1) { + binding.lv.removeHeaderView(headView) + } + adapter.notifyDataSetChanged() + showToast("没有该货柜信息") + binding.ll.visibility = View.GONE + clearView() + } + } else { + showToast(UiUtlis.getString(context, R.string.data_error)) + } + } + + 1 -> { + val info = GsonUtils.GsonToBean( + response?.get(), + DagerEnterApplyBaseBean::class.java + ) + if (info != null) { + if (info.isFlag) { + showToast("盘点成功") + requestData("刷新..") + playSound() + } else { + showToast("盘点失败") + } + } else { + showToast(UiUtlis.getString(context, R.string.data_error)) + } + } + } + } + + override fun onFailed(what: Int, response: Response?) { + println("错误" + what + "==" + response?.get()) + } + } + + private fun setListData() { + adapter = RealTimeKcpdAdapter(infos, context, this) + binding.lv.adapter = adapter + binding.lv.onItemClickListener = + AdapterView.OnItemClickListener { adapterView, view, i, l -> + if (i != 0) { + if (infos[i - 1].isFlag) { + infos[i - 1].isFlag = false + clearView() + } else { + infos[i - 1].isFlag = true + for (a in infos.indices) { + if (a != i - 1) { + infos[a].isFlag = false + } + } + updateView(i - 1) + } + } + adapter.notifyDataSetChanged() + } + } + + private fun updateView(index: Int) { + selectItem = index + binding.etXm.text = infos[index].itemnum + binding.etMs.text = infos[index].description + binding.etSl.text = infos[index].curbal + "" + binding.etSjsl.setText(infos[index].curbal + "") + binding.etSjsl.isEnabled = true + } + + private fun clearView() { + selectItem = -1 + binding.spBz.setSelection(0) + binding.etXm.text = "" + binding.etMs.text = "" + binding.etSl.text = "" + binding.etSjsl.setText("") + } + + private fun removeView() { + selectItem = -1 + binding.etXm.text = "" + binding.etMs.text = "" + binding.etSl.text = "" + binding.etSjsl.setText("") + infos.clear() + if (adapter != null) { + adapter.notifyDataSetChanged() + binding.lv.removeHeaderView(headView) + } + binding.etXmh.setText("") + binding.ll.visibility = View.INVISIBLE + } + + private fun addJson(kcpd: RealTimeKcpdInfo.RowsBean): String { + var json: String? = "" + val info = SaveRealTimeKcpdInfo() + info.pdsl = binding.etSjsl.text.toString() + info.pdr = App.getInstance().userInfo.manid + info.itemnum = kcpd.itemnum + info.bz = binding.spBz.selectedItem.toString() + info.lotnum = kcpd.lotnum + info.binnum = kcpd.binnum + json = GsonUtils.GsonString(info) + return json + } + + private fun playSound() { + val sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) + val r = RingtoneManager.getRingtone(this, sound) + r.play() + } + + override fun cbClick(view: View?) { + val index = view!!.tag as Int + val cb = view as CheckBox + if (!cb.isChecked) { + infos[index].isFlag = false + clearView() + } else { + infos[index].isFlag = true + for (a in infos.indices) { + if (a != index) { + infos[a].isFlag = false + } + } + updateView(index) + adapter.notifyDataSetChanged() + } + } + + private fun showPdDialog(kcpd: RealTimeKcpdInfo.RowsBean) { + val dialog = RealTimePdDialog(this) + dialog.setFgOnClick { + scData(addJson(kcpd)) + dialog.close() + } + dialog.setQxOnClick { dialog.close() } + } + + //获取母货架 + private fun getSpinnerParentData(qccode: String) { + val url = Contans.IP + Contans.GET_SPINNER_PARENT_UDBIN_URL + val request = NoHttp.createStringRequest(url, RequestMethod.GET) + request.add("QCCODE", qccode) + NohttpUtils.getInstance() + .add(this, 2, request, object : HttpListener { + + override fun onSucceed(what: Int, response: Response?) { + if (what == 2) { + val result = response?.get() + showLog(result?:"") + val oneLevelShelvesBean = GsonUtils.GsonToBean( + result, + OneLevelShelvesBean::class.java + ) + if (oneLevelShelvesBean != null) { + if (oneLevelShelvesBean.isFlag && oneLevelShelvesBean.datas != null && oneLevelShelvesBean.datas.size > 0) { + val BINNUM = oneLevelShelvesBean.datas[0].binnum + getSpinnerSonData(BINNUM) + } else { + removeView() + val listText = mutableListOf() + val arrayModel = listText.toTypedArray() + // 然后的话创建一个我们的一个数组适配器并且的话这个数组适配器使我们的字符串类型的 + val adapter = ArrayAdapter( + context, + android.R.layout.simple_spinner_item, + arrayModel + ) + // 设置我们的数组下拉时的选项的样式 + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) + binding.spinnerSon.adapter = adapter + showToast("查询不到子货架号,请确认母货架号是否正确") + } + } + } + } + + override fun onFailed(what: Int, response: Response?) { + showLog("错误" + what + "==" + response?.get()) + } + }, true, true, UiUtlis.getString(context, R.string.loading)) + } + + //获取子货架 + private fun getSpinnerSonData(binnum: String) { + val url = Contans.IP + Contans.GET_SPINNER_SON_UDBIN_URL + val request = NoHttp.createStringRequest(url, RequestMethod.GET) + request.add("BINNUM", binnum) + NohttpUtils.getInstance() + .add(this, 3, request, object : HttpListener { + + override fun onSucceed(what: Int, response: Response?) { + if (what == 3) { + val result = response?.get() + showLog(result?:"") + val twoLevelShelvesBean = GsonUtils.GsonToBean( + result, + TwoLevelShelvesBean::class.java + ) + if (twoLevelShelvesBean != null) { + if (twoLevelShelvesBean.isFlag && twoLevelShelvesBean.datas != null && twoLevelShelvesBean.datas.size > 0) { + spinnerSonList.clear() + spinnerSonList.addAll(twoLevelShelvesBean.datas) + + // 在我们的这个位置的话创建我们的数组 + //val arrayModel = mu(spinnerSonList.size) + val listText = mutableListOf() + for (item in spinnerSonList) { + listText.add( + item.text + ) + } + //listText.toArray(arrayModel) + val arrayModel = listText.toTypedArray() + + // 然后的话创建一个我们的一个数组适配器并且的话这个数组适配器使我们的字符串类型的 + val adapter = ArrayAdapter( + context, + android.R.layout.simple_spinner_item, + arrayModel + ) + // 设置我们的数组下拉时的选项的样式 + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) + binding.spinnerSon.adapter = adapter + } + } + } + } + + override fun onFailed(what: Int, response: Response?) { + showLog("错误" + what + "==" + response?.get()) + } + }, true, true, UiUtlis.getString(context, R.string.loading)) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/KcpdTypeActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/KcpdTypeActivity.java index 153d063..d304435 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/KcpdTypeActivity.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/KcpdTypeActivity.java @@ -13,6 +13,7 @@ import com.rehome.zhdcoa.adapter.GridViewKcpdTypeAdapter; import com.rehome.zhdcoa.base.BaseViewBindingActivity; import com.rehome.zhdcoa.bean.GridViewBean; import com.rehome.zhdcoa.databinding.ActivityKcpdTypeBinding; + import java.util.ArrayList; import java.util.List; @@ -57,7 +58,6 @@ public class KcpdTypeActivity extends BaseViewBindingActivity() { binding.etPassword.setText("Maying0509?") // // //程宇翔 -// binding.etUsername.setText("310673") -// binding.etPassword.setText("Abcd@1234") + binding.etUsername.setText("310673") + binding.etPassword.setText("Abcd@1234") //李耿 // binding.etUsername.setText("310261") // binding.etPassword.setText("!Lig770731") diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/RealTimeKcpdHistoryActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/RealTimeKcpdHistoryActivity.kt index ef4d0d7..8fba853 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/RealTimeKcpdHistoryActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/RealTimeKcpdHistoryActivity.kt @@ -26,7 +26,12 @@ import com.yolanda.nohttp.RequestMethod import com.yolanda.nohttp.rest.Response import java.text.SimpleDateFormat import java.util.Calendar -import java.util.function.Consumer + +/** + * Create By HuangWenFei + * 创建日期:2023-09-12 14:05 + * 描述:移动仓库-库存盘点-实时盘点-盘点记录 + */ class RealTimeKcpdHistoryActivity : BaseActivityOaToolbarViewBinding() { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java index e7f7c7e..5d544e8 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java @@ -326,6 +326,8 @@ public class YunXingFragment extends BaseFragment { final Request request = NoHttp.createStringRequest(Contans.IP + Contans.XS_JCSJ, RequestMethod.POST); request.setDefineRequestBodyForJson(createZyJson()); + showLog(Contans.IP + Contans.XS_JCSJ); + showLog(createZyJson()); NohttpUtils.getInstance().add(getActivity(), 0, request, new HttpListener() { @@ -333,7 +335,10 @@ public class YunXingFragment extends BaseFragment { public void onSucceed(int what, Response response) { try { - BasicDataBean bean = GsonUtils.GsonToBean(response.get(), BasicDataBean.class); + String result = response.get(); + showLog(Contans.IP + Contans.XS_JCSJ); + showLog(result); + BasicDataBean bean = GsonUtils.GsonToBean(result, BasicDataBean.class); if (bean != null) { if (bean.getState() == 1) { if (bean.getData().size() != 0) { diff --git a/app/src/main/res/layout/activity_hjpd.xml b/app/src/main/res/layout/activity_hjpd.xml index 22d04f0..6de3c1c 100644 --- a/app/src/main/res/layout/activity_hjpd.xml +++ b/app/src/main/res/layout/activity_hjpd.xml @@ -1,13 +1,15 @@ - + android:orientation="vertical" + tools:context=".ui.activity.HjpdActivity"> - +