|
|
@@ -0,0 +1,204 @@
|
|
|
+package com.uas.uaspda.fragment;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.content.Intent;
|
|
|
+import android.support.v7.widget.LinearLayoutManager;
|
|
|
+import android.support.v7.widget.RecyclerView;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.view.KeyEvent;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.TextView;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.android.volley.Request;
|
|
|
+import com.uas.uaspda.R;
|
|
|
+import com.uas.uaspda.activity.FunctionActivity;
|
|
|
+import com.uas.uaspda.adapter.WhCheckLocationAdapter;
|
|
|
+import com.uas.uaspda.bean.StockAlreadyItemBean;
|
|
|
+import com.uas.uaspda.global.GloableParams;
|
|
|
+import com.uas.uaspda.listener.MyEditorActionListener;
|
|
|
+import com.uas.uaspda.tools.VolleyUtil;
|
|
|
+import com.uas.uaspda.util.CameraUtil;
|
|
|
+import com.uas.uaspda.util.CommonUtil;
|
|
|
+import com.uas.uaspda.util.FastjsonUtil;
|
|
|
+import com.uas.uaspda.util.HttpCallback;
|
|
|
+import com.uas.uaspda.util.HttpParams;
|
|
|
+import com.uas.uaspda.util.VolleyRequest;
|
|
|
+import com.uas.uaspda.view.ClearableEditText;
|
|
|
+import com.uas.uaspda.view.RecyclerItemDecoration;
|
|
|
+import com.uuzuche.lib_zxing.activity.CaptureActivity;
|
|
|
+import com.uuzuche.lib_zxing.activity.CodeUtils;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+public class WHCheckLocationFragment extends BaseFragment {
|
|
|
+ private static final int SCAN_BARCODE_CODE = 403;
|
|
|
+ private ClearableEditText mLocationEditText;
|
|
|
+ private TextView mConfirmTextView, mLocationTextView;
|
|
|
+ private RecyclerView mRecyclerView;
|
|
|
+ private List<StockAlreadyItemBean> mResultList;
|
|
|
+ private WhCheckLocationAdapter mWhCheckLocationAdapter;
|
|
|
+ private ImageView mScanImageView;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected int getLayout() {
|
|
|
+ return R.layout.fragment_whcheck_location;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initViews() {
|
|
|
+ setTitle("储位信息核查");
|
|
|
+ ((FunctionActivity) mActivity).setScanIvVisible(true);
|
|
|
+
|
|
|
+ mLocationEditText = root.findViewById(R.id.et_collect);
|
|
|
+ mConfirmTextView = root.findViewById(R.id.btn_collect);
|
|
|
+
|
|
|
+ mScanImageView = (ImageView) mActivity.findViewById(R.id.btn_actionbar_scan_iv);
|
|
|
+ mLocationTextView = root.findViewById(R.id.whcheck_location_location_tv);
|
|
|
+ mRecyclerView = root.findViewById(R.id.whcheck_location_data_rv);
|
|
|
+ mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
|
|
+ mRecyclerView.addItemDecoration(new RecyclerItemDecoration(1));
|
|
|
+ mResultList = new ArrayList<>();
|
|
|
+ mWhCheckLocationAdapter = new WhCheckLocationAdapter(mResultList);
|
|
|
+ mRecyclerView.setAdapter(mWhCheckLocationAdapter);
|
|
|
+
|
|
|
+ mLocationEditText.setHint("储位");
|
|
|
+ mLocationEditText.requestFocus();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initEvents() {
|
|
|
+ CommonUtil.setEditorActionListener(mLocationEditText, new MyEditorActionListener() {
|
|
|
+ @Override
|
|
|
+ public void MyEditorAction(String text, int actionId, KeyEvent event) {
|
|
|
+ if (!TextUtils.isEmpty(text)) {
|
|
|
+ searchLocation(text);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ mConfirmTextView.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ String location = mLocationEditText.getText().toString().trim();
|
|
|
+ if (!TextUtils.isEmpty(location)) {
|
|
|
+ searchLocation(location);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ mScanImageView.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ if (CameraUtil.hasCamera()) {
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.setClass(mActivity, CaptureActivity.class);
|
|
|
+ startActivityForResult(intent, SCAN_BARCODE_CODE);
|
|
|
+ } else {
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void searchLocation(String text) {
|
|
|
+ progressDialog.show();
|
|
|
+ mLocationEditText.setText("");
|
|
|
+ mLocationEditText.requestFocus();
|
|
|
+ mLocationTextView.setText(text);
|
|
|
+ mResultList.clear();
|
|
|
+ VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
|
|
|
+ .url(GloableParams.ADDRESS_CHECK_LOCATIONCHECK)
|
|
|
+ .method(Request.Method.POST)
|
|
|
+ .addParam("location", text)
|
|
|
+ .build(), new HttpCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int flag, Object o) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ try {
|
|
|
+ String result = o.toString();
|
|
|
+ JSONObject resultObject = JSON.parseObject(result);
|
|
|
+ JSONArray dataArray = resultObject.getJSONArray("data");
|
|
|
+ if (dataArray != null && dataArray.size() > 0) {
|
|
|
+ String location = null;
|
|
|
+ for (int i = 0; i < dataArray.size(); i++) {
|
|
|
+ JSONObject dataObject = dataArray.getJSONObject(i);
|
|
|
+ if (dataObject != null) {
|
|
|
+ StockAlreadyItemBean itemBean = new StockAlreadyItemBean();
|
|
|
+ itemBean.setBI_BARCODE(FastjsonUtil.getText(dataObject, "BAR_CODE"));
|
|
|
+ itemBean.setBI_OUTQTY(FastjsonUtil.getDouble(dataObject, "BAR_REMAIN"));
|
|
|
+ itemBean.setBI_LOCATION(FastjsonUtil.getText(dataObject, "BAR_LOCATION"));
|
|
|
+ itemBean.setPR_SPEC(FastjsonUtil.getText(dataObject, "PR_SPEC"));
|
|
|
+ itemBean.setPR_DETAIL(FastjsonUtil.getText(dataObject, "PR_DETAIL"));
|
|
|
+ itemBean.setBI_PRODCODE(FastjsonUtil.getText(dataObject, "BAR_PRODCODE"));
|
|
|
+ if (TextUtils.isEmpty(location)) {
|
|
|
+ location = FastjsonUtil.getText(dataObject, "BAR_LOCATION");
|
|
|
+ }
|
|
|
+ mResultList.add(itemBean);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mLocationTextView.setText(location);
|
|
|
+ }
|
|
|
+ mWhCheckLocationAdapter.notifyDataSetChanged();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFail(int flag, String failStr) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, failStr);
|
|
|
+ mWhCheckLocationAdapter.notifyDataSetChanged();
|
|
|
+ mLocationTextView.setText("");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initDatas() {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data);
|
|
|
+
|
|
|
+ if (resultCode != Activity.RESULT_OK) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (requestCode == SCAN_BARCODE_CODE && data != null) {
|
|
|
+ if (data.getExtras() != null) {
|
|
|
+ String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
|
|
|
+ mLocationEditText.setText(result);
|
|
|
+ mLocationEditText.setSelection(result.length());
|
|
|
+
|
|
|
+ searchLocation(result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onFragmentBackPressed() {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDestroy() {
|
|
|
+ ((TextView) (getActivity().findViewById(R.id.tv_actionbar_withback))).setText(R.string.title_content_whmm);
|
|
|
+ ((FunctionActivity) mActivity).setScanIvVisible(false);
|
|
|
+ super.onDestroy();
|
|
|
+ }
|
|
|
+}
|