| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620 |
- package com.uas.hystorage.fragment;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.graphics.drawable.BitmapDrawable;
- import android.os.Bundle;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.text.TextUtils;
- import android.util.Log;
- import android.view.Gravity;
- import android.view.KeyEvent;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.inputmethod.EditorInfo;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.ListView;
- 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.google.gson.Gson;
- import com.uas.hystorage.R;
- import com.uas.hystorage.activity.FunctionActivity;
- import com.uas.hystorage.adapter.HepiAdapter;
- import com.uas.hystorage.application.PdaApplication;
- import com.uas.hystorage.bean.CaiPiBlueBean;
- import com.uas.hystorage.bean.HepiBean;
- import com.uas.hystorage.global.GloableParams;
- import com.uas.hystorage.tools.SharedPreUtil;
- import com.uas.hystorage.tools.VolleyUtil;
- import com.uas.hystorage.util.CameraUtil;
- import com.uas.hystorage.util.CommonUtil;
- import com.uas.hystorage.util.Constants;
- import com.uas.hystorage.util.FastjsonUtil;
- import com.uas.hystorage.util.FragmentUtils;
- import com.uas.hystorage.util.PrintUtils;
- import com.uas.hystorage.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.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * Created by RaoMeng on 2017/5/4.
- * 不良采集页面
- */
- public class HePiFragment extends BaseFragment {
- private static final String TAG = "CaiPiFragment";
- private static final int SCAN_BARCODE_CODE = 106;
- private ClearableEditText ed_pihao;
- private ClearableEditText ed_hepi;
- private Button btn_confirm;
- private TextView tv_result;
- private StringRequest mStringRequest;
- private ImageView mScanImageView;
- private int mFocusId;
- private String sc_code;
- private String ma_code;
- private RecyclerView rv_content;
- private HepiAdapter hepiAdapter;
- private ArrayList<HepiBean> list=new ArrayList<>();
- private ImageView iv_close;
- private TextView tv_total_num;
- private LinearLayout ll_title;
- private int mPrintDpi = 203;
- private PopupWindow splitPop;
- private boolean isPrinting = false;
- private boolean isConnected = false;
- private List<CaiPiBlueBean.DataBean> messages = new ArrayList<>();
- @Override
- protected int getLayout() {
- return R.layout.fragment_hepi;
- }
- @Override
- protected void initViews() {
- FunctionActivity.setTitle("合批");
- ((FunctionActivity) mActivity).setScanIvVisible(true);
- mScanImageView = (ImageView) mActivity.findViewById(R.id.btn_actionbar_scan_iv);
- ed_pihao = (ClearableEditText)root.findViewById(R.id.ed_pihao);
- ed_hepi = (ClearableEditText)root.findViewById(R.id.ed_hepi);
- btn_confirm = (Button) root.findViewById(R.id.btn_confirm);
- tv_result = (TextView) root.findViewById(R.id.tv_result);
- ll_title=root.findViewById(R.id.ll_title);
- iv_close=root.findViewById(R.id.iv_close);
- rv_content=root.findViewById(R.id.rv_content);
- tv_total_num=root.findViewById(R.id.tv_total_num);
- rv_content.setLayoutManager(new LinearLayoutManager(mActivity));
- hepiAdapter=new HepiAdapter(this);
- rv_content.setAdapter(hepiAdapter);
- ed_pihao.requestFocus();
- isConnected = (SharedPreUtil.getInt(mActivity, "printConnect", 0) == 1);
- mPrintDpi = SharedPreUtil.getInt(mActivity, "printDpi", 203);
- }
- @Override
- protected void initEvents() {
- iv_close.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ed_pihao.setText("");
- ed_pihao.setBackgroundResource(R.drawable.bg_edittext);
- ed_pihao.setEnabled(true);
- ed_pihao.setFocusableInTouchMode(true);
- ed_pihao.requestFocus();
- iv_close.setVisibility(View.GONE);
- list.clear();
- hepiAdapter.notifyDataSetChanged();
- ll_title.setVisibility(View.GONE);
- }
- });
- 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)) {
- String pihao = ed_pihao.getText().toString().trim();
- if (TextUtils.isEmpty(pihao)) {
- CommonUtil.toastNoRepeat(mActivity,"请先输入生产批号.");
- return false;
- }
- getPihaoData(1,pihao);
- }
- return false;
- }
- });
- ed_hepi.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)) {
- String pihao = ed_hepi.getText().toString().trim();
- if (TextUtils.isEmpty(pihao)) {
- CommonUtil.toastNoRepeat(mActivity,"请先输入合批批号.");
- return false;
- }
- getPihaoData(2,pihao);
- return true;
- }
- return false;
- }
- });
- btn_confirm.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- mergeLotno();
- }
- });
- }
- private void getPihaoData(int type,String pihao) {
- progressDialog.show();
- String url = null;
- try {
- url = GloableParams.ADDRESS_GET_MERGE_LOTNO + "?lotno=" + URLEncoder.encode(pihao, "utf-8")
- +"&sc_code=" + URLEncoder.encode(sc_code, "utf-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- PdaApplication.mRequestQueue.cancelAll(TAG + "getMergeLotno");
- mStringRequest = new StringRequest(Request.Method.GET, url,
- new Response.Listener<String>() {
- @Override
- public void onResponse(String s) {
- progressDialog.dismiss();
- try {
- boolean isSuccess = new JSONObject(s).getBoolean("success");
- if(isSuccess){
- ll_title.setVisibility(View.VISIBLE);
- JSONObject dataObject = new JSONObject(s).getJSONObject("data");
- HepiBean hepiBean=null;
- if (dataObject != null) {
- hepiBean=new HepiBean();
- hepiBean.setLotno(dataObject.getString("LOTNO"));
- hepiBean.setMakecode(dataObject.getString("MAKECODE"));
- hepiBean.setPr_detail(dataObject.getString("PR_DETAIL"));
- hepiBean.setProdcode(dataObject.getString("PRODCODE"));
- hepiBean.setQty(dataObject.getInt("QTY"));
- hepiBean.setPr_spec(dataObject.getString("PR_SPEC"));
- if(type==1){
- if(isContainPihao(hepiBean.getLotno())){
- CommonUtil.toastNoRepeat(mActivity,"不可重复采集");
- }else{
- list.add(hepiBean);
- CommonUtil.toastNoRepeat(mActivity,"请输入合批批号");
- }
- hepiAdapter.setNewData(list);
- ed_pihao.setEnabled(false);
- ed_pihao.setFocusable(false);
- ed_pihao.setFocusableInTouchMode(false);
- iv_close.setVisibility(View.VISIBLE);
- ed_pihao.setBackgroundResource(R.drawable.bg_edittext_unenable);
- }else{
- if(isContainPihao(hepiBean.getLotno())){
- CommonUtil.toastNoRepeat(mActivity,"不可重复采集");
- }else{
- list.add(hepiBean);
- }
- ed_hepi.setText("");
- ed_hepi.requestFocus();
- hepiAdapter.setNewData(list);
- }
- tv_total_num.setText(getTotalNum()+"");
- }
- }
- } 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);
- if(type==1){
- ed_pihao.setText("");
- ed_pihao.requestFocus();
- }else{
- ed_hepi.setText("");
- ed_hepi.requestFocus();
- }
- }
- }) {
- @Override
- public Map<String, String> getHeaders() throws AuthFailureError {
- return VolleyUtil.getVolleyUtil().setCookies();
- }
- };
- mStringRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
- mStringRequest.setTag(TAG + "getMergeLotno");
- PdaApplication.mRequestQueue.add(mStringRequest);
- }
- /***
- * 判断列表中是否包含相同批号
- * @return
- */
- public boolean isContainPihao(String pihao){
- list= (ArrayList<HepiBean>) hepiAdapter.getData();
- boolean isContain=false;
- for(int i=0;i<list.size();i++){
- if(list.get(i).getLotno().equals(pihao)){
- isContain=true;
- break;
- }
- }
- return isContain;
- }
- public int getTotalNum(){
- list= (ArrayList<HepiBean>) hepiAdapter.getData();
- int total=0;
- for(int i=0;i<list.size();i++){
- total+=list.get(i).getQty();
- }
- return total;
- }
- public void deleteItem(int position){
- hepiAdapter.getData().remove(position);
- hepiAdapter.notifyDataSetChanged();
- tv_total_num.setText(getTotalNum()+"");
- }
- private void mergeLotno() {
- if(list.size()<2){
- CommonUtil.toastNoRepeat(mActivity,"合批数据必须大于等于2条");
- return;
- }
- String listJson=new Gson().toJson(list);
- progressDialog.show();
- PdaApplication.mRequestQueue.cancelAll(TAG + "mergeLotno");
- mStringRequest = new StringRequest(Request.Method.POST ,GloableParams.ADDRESS_MERGE_LOTNO,
- new Response.Listener<String>() {
- @Override
- public void onResponse(String s) {
- progressDialog.dismiss();
- try {
- boolean issuccess = new JSONObject(s).getBoolean("success");
- if (issuccess) {
- String resultStr = "合批成功\n";
- // JSONArray dataArray = FastjsonUtil.getJSONArray(s.toString(), "data");
- com.alibaba.fastjson.JSONObject jsonObject = FastjsonUtil.getJSONObject(s.toString(), "data");
- resultStr+="生产批号:"+jsonObject.getString("LOTNO")+", 数量:"+jsonObject.getIntValue("QTY")+"\n";
- tv_result.setVisibility(View.VISIBLE);
- tv_result.setText(resultStr);
- //清除数据
- ed_pihao.setText("");
- ed_pihao.setBackgroundResource(R.drawable.bg_edittext);
- ed_pihao.setEnabled(true);
- ed_pihao.setFocusableInTouchMode(true);
- ed_pihao.requestFocus();
- iv_close.setVisibility(View.GONE);
- list.clear();
- ed_hepi.setText("");
- tv_total_num.setText("");
- hepiAdapter.notifyDataSetChanged();
- ll_title.setVisibility(View.GONE);
- //调用弹框选择打印/打印设置
- // initBreakPopupWindow(dataArray);
- }
- } 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("");
- ed_pihao.setBackgroundResource(R.drawable.bg_edittext);
- ed_pihao.setEnabled(true);
- ed_pihao.setFocusableInTouchMode(true);
- ed_pihao.requestFocus();
- iv_close.setVisibility(View.GONE);
- list.clear();
- ed_hepi.setText("");
- tv_total_num.setText("0");
- hepiAdapter.notifyDataSetChanged();
- }
- }) {
- @Override
- public Map<String, String> getHeaders() throws AuthFailureError {
- return VolleyUtil.getVolleyUtil().setCookies();
- }
- @Override
- protected Map<String, String> getParams() throws AuthFailureError {
- Map<String, String> map = new HashMap<>();
- map.put("sc_code", sc_code);
- map.put("param",listJson);
- return map;
- }
- };
- mStringRequest.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 0, 1f));
- mStringRequest.setTag(TAG + "splitLotno");
- 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_hepi){
- ed_hepi.setText(result);
- ed_hepi.setSelection(result.length());
- }
- }
- }
- }
- @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);
- isConnected = (SharedPreUtil.getInt(mActivity, "printConnect", 0) == 1);
- mPrintDpi = SharedPreUtil.getInt(mActivity, "printDpi", 203);
- }else{
- ((FunctionActivity) mActivity).setScanIvVisible(false);
- }
- }
- private void closeSplitPopupWindow() {
- if (splitPop != null) {
- splitPop.dismiss();
- splitPop = null;
- CommonUtil.setBackgroundAlpha(mActivity, 1f);
- }
- }
- //org.json.
- protected void initBreakPopupWindow(com.alibaba.fastjson.JSONArray listArray) {
- messages.clear();
- for (int i = 0; i < listArray.size(); i++) {
- try {
- com.alibaba.fastjson.JSONObject barcodeObject = listArray.getJSONObject(i);
- if (barcodeObject != null) {
- CaiPiBlueBean.DataBean dataBean=new CaiPiBlueBean.DataBean();
- // dataBean.setLotno(JsonUtils.optStringNotNull(barcodeObject, "LOTNO"));
- // dataBean.setQty(JsonUtils.optStringNotNull(barcodeObject, "QTY"));
- dataBean.setLotno(barcodeObject.getString("LOTNO"));
- dataBean.setQty(barcodeObject.getString("QTY"));
- messages.add(dataBean);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- View popView = LayoutInflater.from(getActivity()).inflate(R.layout.popupwindow_whbreaking_batch, null);
- ListView listView = (ListView) popView.findViewById(R.id.list_view);
- Button btnPrintf = (Button) popView.findViewById(R.id.btn_print);
- Button btnPrintfSet = (Button) popView.findViewById(R.id.btn_print_setting);
- Button btnClose = (Button) popView.findViewById(R.id.btn_close);
- Button btnBack = (Button) popView.findViewById(R.id.btn_back);
- btnBack.setVisibility(View.GONE);
- btnClose.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- closeSplitPopupWindow();
- // }
- }
- });
- btnPrintf.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (isConnected) {
- progressDialog.show();
- // listArray.remove(0);
- printEvent(listArray);
- } else {
- closeSplitPopupWindow();
- BlueToothPrintFragment blueToothPrintFragment = new BlueToothPrintFragment();
- Bundle bundle = new Bundle();
- bundle.putString(Constants.KEY.BARCODE_PRINT_ARRAY, listArray.toString());
- Log.e("listArrayone",listArray.toString());
- blueToothPrintFragment.setArguments(bundle);
- FragmentUtils.switchFragment(HePiFragment.this, blueToothPrintFragment);
- }
- }
- });
- btnPrintfSet.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- closeSplitPopupWindow();
- BlueToothPrintFragment blueToothPrintFragment = new BlueToothPrintFragment();
- Bundle bundle = new Bundle();
- bundle.putString(Constants.KEY.BARCODE_PRINT_ARRAY, listArray.toString());
- Log.e("listArraytwo",listArray.toString());
- blueToothPrintFragment.setArguments(bundle);
- FragmentUtils.switchFragment(HePiFragment.this, blueToothPrintFragment);
- }
- });
- MyAdapter adapter = new MyAdapter(getActivity(), R.layout.item_list_whbreakingbatchfragment, messages);
- listView.setAdapter(adapter);
- //当只有一条数据的时候可以加上
- /*
- if (messages.size()>1){
- btnBack.setVisibility(View.GONE);
- }*/
- // PopupWindow实例化,参数的意思是 view,长(不包括状态栏),高(不包括状态栏),是否聚焦
- splitPop = new PopupWindow(popView, LinearLayout.LayoutParams.WRAP_CONTENT,
- LinearLayout.LayoutParams.WRAP_CONTENT, true);
- splitPop.setAnimationStyle(R.style.MenuAnimationFade);
- splitPop.setBackgroundDrawable(new BitmapDrawable());
- // 弹出窗口显示内容视图,默认以锚定视图的左下角为起点,这里为点击按钮
- splitPop.showAtLocation(getActivity().getWindow().getDecorView(), Gravity.CENTER, 0, 0);
- splitPop.setOnDismissListener(new PopupWindow.OnDismissListener() {
- @Override
- public void onDismiss() {
- closeSplitPopupWindow();
- // specialOut();
- }
- });
- CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
- }
- private void printEvent(com.alibaba.fastjson.JSONArray printArray) {
- if (isPrinting) {
- CommonUtil.toastNoRepeat(mActivity, "正在打印中,请勿重复操作");
- return;
- }
- isPrinting = true;
- if (printArray != null && printArray.size() > 0) {
- boolean isFail = false;
- for (int i = 0; i < printArray.size(); i++) {
- try {
- int printResult = PrintUtils.printBar(mActivity, printArray.toString(), mPrintDpi, null);
- if (printResult <= 0) {
- isFail = true;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- closeSplitPopupWindow();
- progressDialog.dismiss();
- if (isFail) {
- isConnected = false;
- SharedPreUtil.saveInt(mActivity, "printConnect", 0);
- CommonUtil.toastNoRepeat(mActivity, "打印失败,请重新连接打印机");
- BlueToothPrintFragment blueToothPrintFragment = new BlueToothPrintFragment();
- Bundle bundle = new Bundle();
- bundle.putString(Constants.KEY.BARCODE_PRINT_ARRAY, printArray.toString());
- Log.e("listArraythree",printArray.toString());
- blueToothPrintFragment.setArguments(bundle);
- FragmentUtils.switchFragment(HePiFragment.this, blueToothPrintFragment);
- } else {
- CommonUtil.toastNoRepeat(mActivity, "打印成功");
- }
- } else {
- CommonUtil.toastNoRepeat(mActivity, "打印失败,条码数据为空");
- }
- isPrinting = false;
- }
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- ((FunctionActivity) mActivity).setScanIvVisible(false);
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- return false;
- }
- @Override
- public boolean onFragmentBackPressed() {
- return false;
- }
- private class MyAdapter extends ArrayAdapter<CaiPiBlueBean.DataBean> {
- private int resourceId;
- public MyAdapter(Context context, int resource, List<CaiPiBlueBean.DataBean> objects) {
- super(context, resource, objects);
- resourceId = resource;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- CaiPiBlueBean.DataBean person = getItem(position);
- convertView = LayoutInflater.from(getContext()).inflate(resourceId,
- null);
- TextView tv_bar_code = (TextView) convertView.findViewById(R.id.tv_bar_code);
- TextView tv_bar_remain = (TextView) convertView.findViewById(R.id.tv_bar_remain);
- tv_bar_code.setText(person.getLotno());
- tv_bar_remain.setText(person.getQty());
- return convertView;
- }
- }
- }
|