|
|
@@ -0,0 +1,399 @@
|
|
|
+package com.uas.gdstorage.fragment;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.content.Intent;
|
|
|
+import android.graphics.drawable.BitmapDrawable;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.view.KeyEvent;
|
|
|
+import android.view.View;
|
|
|
+import android.view.inputmethod.EditorInfo;
|
|
|
+import android.widget.Button;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.PopupWindow;
|
|
|
+import android.widget.TextView;
|
|
|
+
|
|
|
+import com.android.volley.AuthFailureError;
|
|
|
+import com.android.volley.DefaultRetryPolicy;
|
|
|
+import com.android.volley.Request;
|
|
|
+import com.android.volley.Response;
|
|
|
+import com.android.volley.VolleyError;
|
|
|
+import com.android.volley.toolbox.StringRequest;
|
|
|
+import com.uas.gdstorage.R;
|
|
|
+import com.uas.gdstorage.activity.CommonSeclecActivity;
|
|
|
+import com.uas.gdstorage.activity.FunctionActivity;
|
|
|
+import com.uas.gdstorage.application.PdaApplication;
|
|
|
+import com.uas.gdstorage.global.GloableParams;
|
|
|
+import com.uas.gdstorage.tools.VolleyUtil;
|
|
|
+import com.uas.gdstorage.util.CameraUtil;
|
|
|
+import com.uas.gdstorage.util.CommonUtil;
|
|
|
+import com.uas.gdstorage.util.Constants;
|
|
|
+import com.uas.gdstorage.util.FragmentUtils;
|
|
|
+import com.uas.gdstorage.util.JsonUtils;
|
|
|
+import com.uas.gdstorage.util.NumberUtil;
|
|
|
+import com.uas.gdstorage.view.ClearableEditText;
|
|
|
+import com.uuzuche.lib_zxing.activity.CaptureActivity;
|
|
|
+import com.uuzuche.lib_zxing.activity.CodeUtils;
|
|
|
+
|
|
|
+import org.json.JSONException;
|
|
|
+import org.json.JSONObject;
|
|
|
+
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+import java.net.URLEncoder;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by RaoMeng on 2017/5/4.
|
|
|
+ * 不良采集页面
|
|
|
+ */
|
|
|
+public class NotGoodCaiJiFragment extends BaseFragment {
|
|
|
+ private static final String TAG = "NotGoodCaiJiFragment";
|
|
|
+ private static final int SCAN_BARCODE_CODE = 106;
|
|
|
+ private ClearableEditText ed_pihao;
|
|
|
+ private ClearableEditText ed_num;
|
|
|
+ private ClearableEditText ed_code;
|
|
|
+ private ClearableEditText ed_remark;
|
|
|
+ private Button btn_confirm;
|
|
|
+ private TextView tv_result;
|
|
|
+ private StringRequest mStringRequest;
|
|
|
+ private ImageView mScanImageView;
|
|
|
+ private Button mMoreBtn;
|
|
|
+ private int mFocusId;
|
|
|
+ private boolean mIgnoreFocusChange = false;
|
|
|
+ private boolean isShop = false;
|
|
|
+ private String sc_code;
|
|
|
+ private String ma_code;
|
|
|
+ private PopupWindow mMenuPopupWindow;
|
|
|
+ private ImageView iv_search;
|
|
|
+ private TextView tv_no_good_code;
|
|
|
+ @Override
|
|
|
+ protected int getLayout() {
|
|
|
+ return R.layout.fragment_not_good_caiji;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initViews() {
|
|
|
+ FunctionActivity.setTitle("不良采集");
|
|
|
+ ((FunctionActivity) mActivity).setScanIvVisible(true);
|
|
|
+ ((FunctionActivity) mActivity).setMoreBtnVisible(true);
|
|
|
+ mMoreBtn=mActivity.findViewById(R.id.btn_actionbar_more);
|
|
|
+ ed_pihao = (ClearableEditText) root.findViewById(R.id.ed_pihao);
|
|
|
+ ed_num = (ClearableEditText) root.findViewById(R.id.ed_num);
|
|
|
+ ed_code=(ClearableEditText)root.findViewById(R.id.ed_code);
|
|
|
+ ed_remark=(ClearableEditText)root.findViewById(R.id.ed_remark);
|
|
|
+ btn_confirm = (Button) root.findViewById(R.id.btn_confirm);
|
|
|
+ tv_result = (TextView) root.findViewById(R.id.tv_result);
|
|
|
+ mScanImageView = (ImageView) mActivity.findViewById(R.id.btn_actionbar_scan_iv);
|
|
|
+ iv_search=mActivity.findViewById(R.id.iv_search);
|
|
|
+ tv_no_good_code=mActivity.findViewById(R.id.tv_no_good_code);
|
|
|
+ ed_pihao.requestFocus();
|
|
|
+ initPopupWindow();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initEvents() {
|
|
|
+ mScanImageView.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ if (CameraUtil.hasCamera()) {
|
|
|
+ if (root.findFocus() != null) {
|
|
|
+ mFocusId = root.findFocus().getId();
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.setClass(mActivity, CaptureActivity.class);
|
|
|
+ startActivityForResult(intent, SCAN_BARCODE_CODE);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ ed_pihao.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
|
|
+ @Override
|
|
|
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
|
+ if (actionId == EditorInfo.IME_ACTION_SEND
|
|
|
+ || actionId == EditorInfo.IME_ACTION_DONE
|
|
|
+ || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
|
|
|
+ getPihaoData();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mMoreBtn.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ CommonUtil.setBackgroundAlpha(getActivity(), 0.5f);
|
|
|
+ mMenuPopupWindow.showAsDropDown(mMoreBtn);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ iv_search.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ Intent intent = new Intent(mActivity, CommonSeclecActivity.class);
|
|
|
+ intent.putExtra("sc_code", sc_code);
|
|
|
+ intent.putExtra("title", "不良代码");
|
|
|
+ intent.putExtra("type", 3);
|
|
|
+ startActivityForResult(intent, Constants.FLAG.GET_COMMON_ITEM);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ btn_confirm.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ saveBadData();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ private void initPopupWindow() {
|
|
|
+ View view = View.inflate(getActivity(), R.layout.pop_storage_recharge_menu, null);
|
|
|
+ Button doneButton = (Button) view.findViewById(R.id.pop_storage_recharge_menu_1);
|
|
|
+ Button todoButton = (Button) view.findViewById(R.id.pop_storage_recharge_menu_2);
|
|
|
+ doneButton.setText("已采集列表");
|
|
|
+ todoButton.setVisibility(View.GONE);
|
|
|
+ doneButton.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ closeMenuPopupWindow();
|
|
|
+ Bundle mbundle = new Bundle();
|
|
|
+ mbundle.putString(Constants.FLAG.SC_CODE, sc_code);
|
|
|
+ FragmentUtils.switchFragment(NotGoodCaiJiFragment.this, new NoGoodListFragment(), mbundle);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mMenuPopupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
|
|
|
+ mMenuPopupWindow.setBackgroundDrawable(new BitmapDrawable());
|
|
|
+ mMenuPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
+ @Override
|
|
|
+ public void onDismiss() {
|
|
|
+ closeMenuPopupWindow();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void closeMenuPopupWindow() {
|
|
|
+ if (mMenuPopupWindow != null) {
|
|
|
+ mMenuPopupWindow.dismiss();
|
|
|
+ CommonUtil.setBackgroundAlpha(mActivity, 1f);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getPihaoData() {
|
|
|
+ String pihao = ed_pihao.getText().toString().trim();
|
|
|
+ if (!TextUtils.isEmpty(pihao)) {
|
|
|
+ progressDialog.show();
|
|
|
+ String url = null;
|
|
|
+ try {
|
|
|
+ url = GloableParams.ADDRESS_GET_LOT_SOURCE_DATA + "?code=" + URLEncoder.encode(pihao, "utf-8")
|
|
|
+ +"&sc_code=" + URLEncoder.encode(sc_code, "utf-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ PdaApplication.mRequestQueue.cancelAll(TAG + "getLotSourceData");
|
|
|
+ mStringRequest = new StringRequest(Request.Method.GET, url,
|
|
|
+ new Response.Listener<String>() {
|
|
|
+ @Override
|
|
|
+ public void onResponse(String s) {
|
|
|
+ ed_num.requestFocus();
|
|
|
+ progressDialog.dismiss();
|
|
|
+ try {
|
|
|
+ boolean issuccess = new JSONObject(s).getBoolean("success");
|
|
|
+ if(issuccess){
|
|
|
+ JSONObject dataObject = new JSONObject(s).getJSONObject("data");
|
|
|
+ if (dataObject != null) {
|
|
|
+ String resultStr = "生产批号:" + JsonUtils.optStringNotNull(dataObject, "V_LOTNO")
|
|
|
+ + ",不良数:" + JsonUtils.optStringNotNull(dataObject, "V_NGQTY") + " " +
|
|
|
+ ",已采集不良数:" + JsonUtils.optStringNotNull(dataObject, "V_GETNGQTY") + " " +
|
|
|
+ ",进站数:" + JsonUtils.optStringNotNull(dataObject, "V_INQTY")
|
|
|
+ + ",出站数:" + JsonUtils.optStringNotNull(dataObject, "V_OUTQTY")
|
|
|
+ + ",工单号:" + JsonUtils.optStringNotNull(dataObject, "V_MAKECODE");
|
|
|
+ String v_ngqty=JsonUtils.optStringNotNull(dataObject, "V_NGQTY")+"";
|
|
|
+ tv_result.setVisibility(View.VISIBLE);
|
|
|
+ tv_result.setText(resultStr);
|
|
|
+ ed_num.setText(v_ngqty);
|
|
|
+ ed_num.setSelection(v_ngqty.length());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ new Response.ErrorListener() {
|
|
|
+ @Override
|
|
|
+ public void onErrorResponse(VolleyError volleyError) {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ String errorToast = CommonUtil.showErrorToast(volleyError, true);
|
|
|
+ tv_result.setVisibility(View.VISIBLE);
|
|
|
+ tv_result.setText(errorToast);
|
|
|
+ ed_pihao.setText(null);
|
|
|
+ ed_pihao.requestFocus();
|
|
|
+ }
|
|
|
+ }) {
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getHeaders() throws AuthFailureError {
|
|
|
+ return VolleyUtil.getVolleyUtil().setCookies();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ mStringRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
|
|
|
+ mStringRequest.setTag(TAG + "getLotSourceData");
|
|
|
+ PdaApplication.mRequestQueue.add(mStringRequest);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveBadData() {
|
|
|
+ String pihao = ed_pihao.getText().toString().trim();
|
|
|
+ String ngqtyStr=ed_num.getText().toString().trim();
|
|
|
+ String bc_code=ed_code.getText().toString().trim();
|
|
|
+ String remark=ed_remark.getText().toString().trim();
|
|
|
+ int ngqty= NumberUtil.parseInt(ngqtyStr);
|
|
|
+ if(TextUtils.isEmpty(pihao)){
|
|
|
+ CommonUtil.toastNoRepeat(mActivity,"生产批号不能为空");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(ngqty<=0){
|
|
|
+ CommonUtil.toastNoRepeat(mActivity,"不良数量必须大于0");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(TextUtils.isEmpty(bc_code)){
|
|
|
+ CommonUtil.toastNoRepeat(mActivity,"不良代码不能为空");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!TextUtils.isEmpty(pihao)) {
|
|
|
+ progressDialog.show();
|
|
|
+ PdaApplication.mRequestQueue.cancelAll(TAG + "saveBadData");
|
|
|
+ mStringRequest = new StringRequest(Request.Method.POST ,GloableParams.ADDRESS_SAVE_BAD_DATA,
|
|
|
+ new Response.Listener<String>() {
|
|
|
+ @Override
|
|
|
+ public void onResponse(String s) {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ try {
|
|
|
+ boolean issuccess = new JSONObject(s).getBoolean("success");
|
|
|
+ if (issuccess) {
|
|
|
+ String resultStr = "不良采集成功。";
|
|
|
+ tv_result.setVisibility(View.VISIBLE);
|
|
|
+ tv_result.setText(resultStr);
|
|
|
+ //清除数据
|
|
|
+ ed_pihao.setText(null);
|
|
|
+ ed_pihao.requestFocus();
|
|
|
+ ed_num.setText("");
|
|
|
+ ed_code.setText("");
|
|
|
+ ed_remark.setText("");
|
|
|
+ tv_no_good_code.setText("");
|
|
|
+ tv_no_good_code.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ new Response.ErrorListener() {
|
|
|
+ @Override
|
|
|
+ public void onErrorResponse(VolleyError volleyError) {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ String errorToast = CommonUtil.showErrorToast(volleyError, true);
|
|
|
+ tv_result.setVisibility(View.VISIBLE);
|
|
|
+ tv_result.setText(errorToast);
|
|
|
+ //清除数据
|
|
|
+ ed_pihao.setText(null);
|
|
|
+ ed_pihao.requestFocus();
|
|
|
+ ed_num.setText("");
|
|
|
+ ed_code.setText("");
|
|
|
+ ed_remark.setText("");
|
|
|
+ tv_no_good_code.setText("");
|
|
|
+ tv_no_good_code.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ }) {
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getHeaders() throws AuthFailureError {
|
|
|
+ return VolleyUtil.getVolleyUtil().setCookies();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected Map<String, String> getParams() throws AuthFailureError {
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ params.put("code", pihao);
|
|
|
+ params.put("sc_code", sc_code);
|
|
|
+ params.put("bc_code", bc_code);
|
|
|
+ params.put("ngqty", ngqtyStr);
|
|
|
+ params.put("remark", remark);
|
|
|
+ return params;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ mStringRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
|
|
|
+ mStringRequest.setTag(TAG + "saveBadData");
|
|
|
+ PdaApplication.mRequestQueue.add(mStringRequest);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
+ super.onActivityResult(requestCode, resultCode, data);
|
|
|
+ if (resultCode == Activity.RESULT_OK&&requestCode == SCAN_BARCODE_CODE && data != null) {
|
|
|
+ if (data.getExtras() != null) {
|
|
|
+ String result = data.getExtras().getString(CodeUtils.RESULT_STRING);
|
|
|
+ if (mFocusId == R.id.ed_pihao) {
|
|
|
+ ed_pihao.setText(result);
|
|
|
+ ed_pihao.setSelection(result.length());
|
|
|
+ }else if(mFocusId == R.id.ed_num){
|
|
|
+ ed_num.setText(result);
|
|
|
+ ed_num.setSelection(result.length());
|
|
|
+ }else if(mFocusId == R.id.ed_code){
|
|
|
+ ed_code.setText(result);
|
|
|
+ ed_code.setSelection(result.length());
|
|
|
+ }else if(mFocusId == R.id.ed_remark){
|
|
|
+ ed_remark.setText(result);
|
|
|
+ ed_remark.setSelection(result.length());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //不良代码选择之后回调
|
|
|
+ if (requestCode == Constants.FLAG.GET_COMMON_ITEM && resultCode == 1847) {
|
|
|
+ String result = data.getStringExtra("ITEM_DATA");
|
|
|
+ if(result.contains("-")&&result.split("-").length>=2){
|
|
|
+ ed_code.setText(result.split("-")[0]);
|
|
|
+ tv_no_good_code.setText(result.split("-")[1]);
|
|
|
+ tv_no_good_code.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initDatas() {
|
|
|
+ Bundle bundle = getArguments();//从activity传过来的Bundle
|
|
|
+ if(bundle!=null){
|
|
|
+ sc_code = bundle.getString(Constants.FLAG.SC_CODE);
|
|
|
+ ma_code = bundle.getString(Constants.FLAG.MA_CODE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onHiddenChanged(boolean hidden) {
|
|
|
+ super.onHiddenChanged(hidden);
|
|
|
+ if (!hidden) {
|
|
|
+ FunctionActivity.setTitle("不良采集");
|
|
|
+ ((FunctionActivity) mActivity).setScanIvVisible(true);
|
|
|
+ ((FunctionActivity) mActivity).setMoreBtnVisible(true);
|
|
|
+ }else{
|
|
|
+ ((FunctionActivity) mActivity).setScanIvVisible(false);
|
|
|
+ ((FunctionActivity) mActivity).setMoreBtnVisible(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDestroyView() {
|
|
|
+ super.onDestroyView();
|
|
|
+ ((FunctionActivity) mActivity).setScanIvVisible(false);
|
|
|
+ ((FunctionActivity) mActivity).setMoreBtnVisible(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onFragmentBackPressed() {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+}
|