|
|
@@ -0,0 +1,409 @@
|
|
|
+package com.uas.bgdq.fragment;
|
|
|
+
|
|
|
+import android.graphics.Color;
|
|
|
+import android.support.v7.widget.DividerItemDecoration;
|
|
|
+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.AdapterView;
|
|
|
+import android.widget.ArrayAdapter;
|
|
|
+import android.widget.Button;
|
|
|
+import android.widget.CheckBox;
|
|
|
+import android.widget.CompoundButton;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.Spinner;
|
|
|
+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.android.volley.toolbox.StringRequest;
|
|
|
+import com.uas.bgdq.R;
|
|
|
+import com.uas.bgdq.activity.FunctionActivity;
|
|
|
+import com.uas.bgdq.adapter.AGVItemNumberAdapter;
|
|
|
+import com.uas.bgdq.bean.AGVItemnumberBean;
|
|
|
+import com.uas.bgdq.global.GloableParams;
|
|
|
+import com.uas.bgdq.listener.MyEditorActionListener;
|
|
|
+import com.uas.bgdq.util.CommonUtil;
|
|
|
+import com.uas.bgdq.util.FastjsonUtil;
|
|
|
+import com.uas.bgdq.util.HttpCallback;
|
|
|
+import com.uas.bgdq.util.HttpParams;
|
|
|
+import com.uas.bgdq.util.StringUtil;
|
|
|
+import com.uas.bgdq.util.VolleyRequest;
|
|
|
+import com.uas.bgdq.view.ClearableEditText;
|
|
|
+
|
|
|
+import org.json.JSONException;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+public class AGVPickupItemNumberFra extends BaseFragment {
|
|
|
+
|
|
|
+ private Spinner masterSpinner;
|
|
|
+ private String selectedItem = "无";
|
|
|
+ private String data = ""; //拼接料号
|
|
|
+ static ArrayAdapter adapter;
|
|
|
+ private List<String> masterFuncList;
|
|
|
+ private StringRequest mStringRequest;
|
|
|
+ private ClearableEditText cet_item_number;
|
|
|
+ private Button bt_pickup, bt_cancel_pickup;
|
|
|
+ private LinearLayout ll_content;
|
|
|
+ private TextView tv_msg_result, tv_liaohao_value,
|
|
|
+ tv_name_value, tv_spec_value, tv_agv_barcode_number_value,
|
|
|
+ tv_execute_material_search_number_value,
|
|
|
+ tv_execute_outbound_number_value;
|
|
|
+ private LinearLayout ll_list_data;
|
|
|
+ private CheckBox cb_all_select;
|
|
|
+ private RecyclerView rv_list_data;
|
|
|
+ private List<AGVItemnumberBean> barList;
|
|
|
+ private AGVItemNumberAdapter agvItemNumberAdapter;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected int getLayout() {
|
|
|
+ return R.layout.fragment_agv_pickup_item_number;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initViews() {
|
|
|
+ FunctionActivity.setTitle(getResources().getString(R.string.agv_pickup_item_number));
|
|
|
+ masterSpinner = (Spinner) root.findViewById(R.id.sp_login);
|
|
|
+ cet_item_number = root.findViewById(R.id.cet_item_number);
|
|
|
+ bt_pickup = root.findViewById(R.id.bt_pickup);
|
|
|
+ bt_cancel_pickup = root.findViewById(R.id.bt_cancel_pickup);
|
|
|
+ ll_content = root.findViewById(R.id.ll_content);
|
|
|
+ tv_msg_result = root.findViewById(R.id.tv_msg_result);
|
|
|
+ tv_liaohao_value = root.findViewById(R.id.tv_liaohao_value);
|
|
|
+ tv_name_value = root.findViewById(R.id.tv_name_value);
|
|
|
+ tv_spec_value = root.findViewById(R.id.tv_spec_value);
|
|
|
+ tv_agv_barcode_number_value = root.findViewById(R.id.tv_agv_barcode_number_value);
|
|
|
+ tv_execute_material_search_number_value = root.findViewById(R.id.tv_execute_material_search_number_value);
|
|
|
+ tv_execute_outbound_number_value = root.findViewById(R.id.tv_execute_outbound_number_value);
|
|
|
+ ll_list_data = root.findViewById(R.id.ll_list_data);
|
|
|
+ cb_all_select = root.findViewById(R.id.cb_all_select);
|
|
|
+
|
|
|
+ masterFuncList = new ArrayList<String>();
|
|
|
+ cet_item_number.requestFocus();
|
|
|
+
|
|
|
+ barList = new ArrayList<>();
|
|
|
+ rv_list_data = root.findViewById(R.id.rv_list_data);
|
|
|
+ rv_list_data.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayout.VERTICAL));
|
|
|
+ rv_list_data.setLayoutManager(new LinearLayoutManager(getActivity()));
|
|
|
+ agvItemNumberAdapter = new AGVItemNumberAdapter(barList);
|
|
|
+ rv_list_data.setAdapter(agvItemNumberAdapter);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initEvents() {
|
|
|
+ agvItemNumberAdapter.setOnSetCheckedChanged(new AGVItemNumberAdapter.OnSetCheckedChanged() {
|
|
|
+ @Override
|
|
|
+ public void onChanged(boolean changed, int position) {
|
|
|
+ if (changed) {
|
|
|
+ if (!TextUtils.isEmpty(data)) {
|
|
|
+ if (!data.contains(String.valueOf(barList.get(position).getBAR_ID()))) {
|
|
|
+ data += barList.get(position).getBAR_ID() + ",";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ data = barList.get(position).getBAR_ID() + ",";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!TextUtils.isEmpty(data)) {
|
|
|
+ if (data.contains(String.valueOf(barList.get(position).getBAR_ID()))) {
|
|
|
+ int startIndex = data.indexOf(String.valueOf(barList.get(position).getBAR_ID()));
|
|
|
+ int endIndex = startIndex + String.valueOf(barList.get(position).getBAR_ID()).length() + 1;
|
|
|
+ // 删除子串
|
|
|
+ data = data.substring(0, startIndex).concat(data.substring(endIndex));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ masterSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
|
|
+ @Override
|
|
|
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
|
|
+ //选中值
|
|
|
+ selectedItem = parent.getItemAtPosition(position).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNothingSelected(AdapterView<?> parent) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ CommonUtil.setEditorActionListener(cet_item_number, new MyEditorActionListener() {
|
|
|
+ @Override
|
|
|
+ public void MyEditorAction(String text, int actionId, KeyEvent event) {
|
|
|
+ getBarAcceptCode(text);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ bt_pickup.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ getPickUp(selectedItem,data);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ bt_cancel_pickup.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ getCancelPickUp(cet_item_number.getText().toString().trim());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ cb_all_select.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
|
|
+ @Override
|
|
|
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
|
+ if (buttonView.isPressed()) {
|
|
|
+ if (isChecked) {
|
|
|
+ data = "";
|
|
|
+ for (int i = 0; i < barList.size(); i++) {
|
|
|
+ data += barList.get(i).getBAR_ID() + ",";
|
|
|
+ barList.get(i).setSelect(true);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ data = "";
|
|
|
+ for (int i = 0; i < barList.size(); i++) {
|
|
|
+ barList.get(i).setSelect(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ agvItemNumberAdapter.setNewData(barList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getBarAcceptCode(String prodcode) {
|
|
|
+ if (StringUtil.isEmpty(prodcode)) {
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, "请输入料号");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ progressDialog.show();
|
|
|
+ try {
|
|
|
+ VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
|
|
|
+ .url(GloableParams.ADDRESS_AGV_OUT_GET_BARBYPROD)
|
|
|
+ .method(Request.Method.GET)
|
|
|
+ .addParam("prodcode", prodcode)
|
|
|
+ .build(), new HttpCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int flag, Object o) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ try {
|
|
|
+ JSONObject dataObject = FastjsonUtil.getJSONObject(o.toString(), "data");
|
|
|
+ String PR_CODE = dataObject.getString("PR_CODE") == null ? "" : dataObject.getString("PR_CODE");
|
|
|
+ String PR_SPEC = dataObject.getString("PR_SPEC") == null ? "" : dataObject.getString("PR_SPEC");
|
|
|
+ String PR_DETAIL = dataObject.getString("PR_DETAIL") == null ? "" : dataObject.getString("PR_DETAIL");
|
|
|
+ String V_COUNT = dataObject.getString("V_COUNT") == null ? "" : dataObject.getString("V_COUNT");
|
|
|
+ String V_QHCOUNT = dataObject.getString("V_QHCOUNT") == null ? "" : dataObject.getString("V_QHCOUNT");
|
|
|
+ String V_OTHCOUNT = dataObject.getString("V_OTHCOUNT") == null ? "" : dataObject.getString("V_OTHCOUNT");
|
|
|
+
|
|
|
+ tv_msg_result.setVisibility(View.GONE);
|
|
|
+ tv_msg_result.setText("");
|
|
|
+ ll_content.setVisibility(View.VISIBLE);
|
|
|
+
|
|
|
+ tv_liaohao_value.setText(PR_CODE);
|
|
|
+ tv_name_value.setText(PR_DETAIL);
|
|
|
+ tv_spec_value.setText(PR_SPEC);
|
|
|
+ tv_agv_barcode_number_value.setText(V_COUNT);
|
|
|
+ tv_execute_material_search_number_value.setText(V_QHCOUNT);
|
|
|
+ tv_execute_outbound_number_value.setText(V_OTHCOUNT);
|
|
|
+
|
|
|
+ JSONArray BARLIST = dataObject.getJSONArray("BARLIST") == null ? null : dataObject.getJSONArray("BARLIST");
|
|
|
+ if (BARLIST != null) {
|
|
|
+ ll_list_data.setVisibility(View.VISIBLE);
|
|
|
+ barList.clear();
|
|
|
+ for (int i = 0; i < BARLIST.size(); i++) {
|
|
|
+ JSONObject jb = BARLIST.getJSONObject(i);
|
|
|
+ AGVItemnumberBean agvItemnumberBean = new AGVItemnumberBean();
|
|
|
+ agvItemnumberBean.setBAR_ID(jb.getInteger("BAR_ID"));
|
|
|
+ agvItemnumberBean.setBAR_CODE(jb.getString("BAR_CODE"));
|
|
|
+ agvItemnumberBean.setBAR_REMAIN(jb.getInteger("BAR_REMAIN"));
|
|
|
+ agvItemnumberBean.setBAR_LOCATION(jb.getString("BAR_LOCATION"));
|
|
|
+ agvItemnumberBean.setSelect(false);
|
|
|
+ barList.add(agvItemnumberBean);
|
|
|
+ }
|
|
|
+ agvItemNumberAdapter.setmList(barList);
|
|
|
+ agvItemNumberAdapter.notifyDataSetChanged();
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFail(int flag, String failStr) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, failStr);
|
|
|
+ tv_msg_result.setTextColor(Color.RED);
|
|
|
+ tv_msg_result.setVisibility(View.VISIBLE);
|
|
|
+ ll_content.setVisibility(View.GONE);
|
|
|
+ tv_msg_result.setText(failStr);
|
|
|
+ cet_item_number.requestFocus();
|
|
|
+ cet_item_number.setText(null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getPickUp(String trackNo,String data) {
|
|
|
+ if (TextUtils.isEmpty(data)) {
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, "请选择条码号");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (trackNo.equals("无")) {
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, "请选择轨道编号");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ progressDialog.show();
|
|
|
+ try {
|
|
|
+ VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
|
|
|
+ .url(GloableParams.ADDRESS_AGV_OUT_BYPRODDEAL)
|
|
|
+ .method(Request.Method.POST)
|
|
|
+ .addParam("trackNo", trackNo)
|
|
|
+ .addParam("data", TextUtils.isEmpty(data)?"":data.substring(0,data.length()-1))
|
|
|
+ .build(), new HttpCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int flag, Object o) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ try {
|
|
|
+ org.json.JSONObject resultObject = new org.json.JSONObject(o.toString());
|
|
|
+ if (resultObject.optBoolean("success")) {
|
|
|
+ tv_msg_result.setVisibility(View.GONE);
|
|
|
+ tv_msg_result.setText("");
|
|
|
+ cet_item_number.setText("");
|
|
|
+ ll_content.setVisibility(View.GONE);
|
|
|
+ tv_msg_result.setVisibility(View.VISIBLE);
|
|
|
+ tv_msg_result.setTextColor(getResources().getColor(R.color.blue));
|
|
|
+ tv_msg_result.setText(resultObject.getString("data")== null?"":resultObject.getString("data"));
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFail(int flag, String failStr) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, failStr);
|
|
|
+ tv_msg_result.setTextColor(Color.RED);
|
|
|
+ tv_msg_result.setVisibility(View.VISIBLE);
|
|
|
+ ll_content.setVisibility(View.GONE);
|
|
|
+ tv_msg_result.setText(failStr);
|
|
|
+ cet_item_number.requestFocus();
|
|
|
+ cet_item_number.setText(null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getCancelPickUp(String prodcode) {
|
|
|
+ if (StringUtil.isEmpty(prodcode)) {
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, "请输入料号");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ progressDialog.show();
|
|
|
+ try {
|
|
|
+ VolleyRequest.getInstance().stringRequest(new HttpParams.Builder()
|
|
|
+ .url(GloableParams.ADDRESS_END_AGV_OUTBYPROD)
|
|
|
+ .method(Request.Method.POST)
|
|
|
+ .addParam("prodcode", prodcode)
|
|
|
+ .build(), new HttpCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int flag, Object o) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ tv_msg_result.setVisibility(View.GONE);
|
|
|
+ tv_msg_result.setText("");
|
|
|
+ cet_item_number.setText("");
|
|
|
+ try {
|
|
|
+ org.json.JSONObject resultObject = new org.json.JSONObject(o.toString());
|
|
|
+ if (resultObject.optBoolean("success")) {
|
|
|
+ tv_msg_result.setVisibility(View.VISIBLE);
|
|
|
+ tv_msg_result.setTextColor(getResources().getColor(R.color.blue));
|
|
|
+ tv_msg_result.setText(resultObject.getString("data")== null?"":resultObject.getString("data"));
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFail(int flag, String failStr) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, failStr);
|
|
|
+ tv_msg_result.setTextColor(Color.RED);
|
|
|
+ tv_msg_result.setVisibility(View.VISIBLE);
|
|
|
+ ll_content.setVisibility(View.GONE);
|
|
|
+ tv_msg_result.setText(failStr);
|
|
|
+ cet_item_number.requestFocus();
|
|
|
+ cet_item_number.setText(null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void initDatas() {
|
|
|
+ getSpinnerData();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getSpinnerData() {
|
|
|
+ progressDialog.show();
|
|
|
+ VolleyRequest.getInstance().stringRequest(mStringRequest,
|
|
|
+ new HttpParams.Builder()
|
|
|
+ .url(GloableParams.ADDRESS_GETAGV_CODE)
|
|
|
+ .method(Request.Method.GET)
|
|
|
+ .tag(TAG)
|
|
|
+ .flag(1)
|
|
|
+ .build(), new HttpCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int flag, Object o) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ try {
|
|
|
+ masterFuncList.clear();
|
|
|
+ String result = o.toString();
|
|
|
+ JSONObject resultObject = JSON.parseObject(result);
|
|
|
+ com.alibaba.fastjson.JSONArray dataArray = resultObject.getJSONArray("data");
|
|
|
+ if (dataArray != null && dataArray.size() > 0) {
|
|
|
+ for (Object index : dataArray) {
|
|
|
+ JSONObject data = (JSONObject) index;
|
|
|
+ String SH_CODE = data.getString("SH_CODE");
|
|
|
+ masterFuncList.add(SH_CODE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (masterFuncList.size() > 0) {
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ progressDialog.dismiss();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFail(int flag, String failStr) throws Exception {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ CommonUtil.toastNoRepeat(mActivity, failStr);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ adapter = new ArrayAdapter(mActivity, R.layout.item_spinner, R.id.text_spinner, masterFuncList);
|
|
|
+ masterSpinner.setAdapter(adapter);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onFragmentBackPressed() {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|