VerticalStoragePickingActivity.java 5.44 KB
package com.huaheng.wms.picking;

import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.huaheng.wms.R;
import com.huaheng.wms.WMSLog;
import com.huaheng.wms.https.HttpInterface;
import com.huaheng.wms.https.Subscribers.ProgressSubscriber;
import com.huaheng.wms.https.Subscribers.SubscriberOnNextListener;
import com.huaheng.wms.model.CommonActivity;
import com.huaheng.wms.util.SpeechUtil;
import com.huaheng.wms.util.WMSUtils;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

/**
 * 立库分拣
 */
public class VerticalStoragePickingActivity extends CommonActivity {

    @BindView(R.id.verticalSnEdit)
    EditText verticalSnEdit;
    @BindView(R.id.vertical_linear)
    LinearLayout verticalLinear;
    @BindView(R.id.verticalEnsureBtn)
    Button verticalEnsureBtn;
    @BindView(R.id.verticalEnsureLayout)
    LinearLayout verticalEnsureLayout;
    private Context mContext;
    private List<Integer> taskList;

    @Override
    protected void initActivityOnCreate(Bundle savedInstanceState) {
        super.initActivityOnCreate(savedInstanceState);
        setContentView(R.layout.activity_vertical_storage_picking);
        ButterKnife.bind(this);
        setTitle(getString(R.string.vertical_storage_sorting));
        mContext = this;
        initView();
        enableButton(false);
    }

    private void initView() {
        verticalSnEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                String number = textView.getText().toString();
                if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                    if (WMSUtils.isNotEmpty(number)) {
                        getTaskDetails(number);
                    }
                }
                return false;
            }
        });
    }


    private void addTaskInfo(List<TaskDetail> taskDetails) {
        verticalLinear.addView(WMSUtils.newContent(mContext, mContext.getString(R.string.library_position), taskDetails.get(0).getSourceLocation()));
        verticalLinear.addView(WMSUtils.newDevider(mContext));
        taskList = new ArrayList<>();
        for (TaskDetail taskDetail : taskDetails) {
            WMSLog.d("taskDetail:" + taskDetail.toString());
            verticalLinear.addView(WMSUtils.newContent(mContext, mContext.getString(R.string.commodity_name), taskDetail.getMaterialName()));
            verticalLinear.addView(WMSUtils.newDevider(mContext));
            verticalLinear.addView(WMSUtils.newContent(mContext, mContext.getString(R.string.commodity_barcode), taskDetail.getMaterialCode()));
            verticalLinear.addView(WMSUtils.newDevider(mContext));
            verticalLinear.addView(WMSUtils.newContent(mContext, mContext.getString(R.string.commodity_number), String.valueOf((int) taskDetail.getQty())));
            verticalLinear.addView(WMSUtils.newDevider(mContext));
            taskList.add(taskDetail.getId());
            View view2 = new View(mContext);
            view2.setMinimumHeight(15);
            view2.setMinimumWidth(-1);
            verticalLinear.addView(view2);
        }
    }

    private void commit() {
        SpeechUtil.getInstance(mContext).speech(mContext.getString(R.string.bulk_collection_success));
        finish();
        WMSUtils.startActivity(mContext, VerticalStoragePickingActivity.class);
    }

    private void getTaskDetails(String code) {
        WMSLog.d("getTaskDetails :" + code);
        HttpInterface.getInsstance().getTaskDetails(new ProgressSubscriber<TaskDetailBean>(this, taskDetailListener), code);
    }

    SubscriberOnNextListener taskDetailListener = new SubscriberOnNextListener<TaskDetailBean>() {

        @Override
        public void onNext(TaskDetailBean taskDetailBean) {
            List<TaskDetail> detailList = taskDetailBean.getTaskDetails();
            addTaskInfo(detailList);
            enableButton(true);
        }

        @Override
        public void onError(String str) {
            WMSUtils.resetEdit(verticalSnEdit);
        }
    };

    private void completeTaskDetails(List<Integer> list) {
        WMSLog.d("completeTaskDetails :" + list);
        HttpInterface.getInsstance().completeTaskDetails(new ProgressSubscriber<List<PickingResult>>(this, completeTaskListener), list);
    }

    SubscriberOnNextListener completeTaskListener = new SubscriberOnNextListener<List<PickingResult>>()  {

        @Override
        public void onNext(List<PickingResult> pickingResults) {
            for(PickingResult result: pickingResults) {
                WMSLog.d("completeTaskListener :" + result);
            }
            commit();
        }

        @Override
        public void onError(String str) {

        }
    };

    @OnClick(R.id.verticalEnsureLayout)
    public void onViewClicked() {
        completeTaskDetails(taskList);
    }

    private void enableButton(boolean enable) {
        if (enable) {
            verticalEnsureBtn.setBackgroundResource(R.drawable.blue_button_bg);
            verticalEnsureLayout.setClickable(true);
        } else {
            verticalEnsureBtn.setBackgroundResource(R.drawable.gray_button_bg);
            verticalEnsureLayout.setClickable(false);
        }
    }
}