OrderTableActivity.java 9.83 KB
package com.huaheng.tab;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ScrollView;

import com.huaheng.common.Constant;
import com.huaheng.common.SpeechUtil;
import com.huaheng.common.WMSLog;
import com.huaheng.common.WMSUtils;
import com.huaheng.common.adapter.AbsCommonAdapter;
import com.huaheng.common.adapter.AbsViewHolder;
import com.huaheng.common.model.BaseBean;
import com.huaheng.common.model.ExceptionBean;
import com.huaheng.common.model.OrderTable;
import com.huaheng.common.model.ShipmentDetail;
import com.huaheng.common.model.TableModel;
import com.huaheng.common.model.UserBean;
import com.huaheng.httplib.HttpInterface;
import com.huaheng.httplib.Subscribers.ProgressSubscriber;
import com.huaheng.httplib.Subscribers.SubscriberOnNextListener;
import com.huaheng.tab.util.TableActivity;

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

import butterknife.ButterKnife;
import butterknife.OnClick;

public class OrderTableActivity extends TableActivity {

    private MyHandler myHandler = new MyHandler();
    private int DELAY = 5000;

    @Override
    protected void initActivityOnCreate(Bundle savedInstanceState) {
        super.initActivityOnCreate(savedInstanceState);
        setButtonView(R.layout.activity_order_table);
        ButterKnife.bind(this);
        setTitle(mContext.getString(R.string.doOrder));
        initTableView();
    }

    @Override
    protected void onResume() {
        super.onResume();
        getFormView(pageNo, true);
    }

    @Override
    protected void onPause() {
        super.onPause();
        try {
            myHandler.removeMessages(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void initTableView() {
        addTitleText("ID", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("工单状态", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("订单号", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("物料编码", Constant.TITLE_TIME_WIDTH);
        addTitleText("物料名称", Constant.TITLE_TIME_WIDTH);
        addTitleText("内页P数", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("数量", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("完成数量", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("出库编码", Constant.TITLE_TIME_WIDTH);
        addTitleText("完成状态", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("创建人", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("创建时间", Constant.TITLE_TIME_WIDTH);
        addTitleText("更新人", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("更新时间", Constant.TITLE_TIME_WIDTH);
        mRightAdapter = new AbsCommonAdapter<TableModel>(mContext, R.layout.table_right_item) {
            @Override
            public void convert(AbsViewHolder helper, TableModel item, final int pos) {
                LinearLayout linearLayout = helper.getView(R.id.tableLineLayout);
                linearLayout.removeAllViews();
                List<String> contentList = item.getContentList();
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(0));
                String order = contentList.get(1);
                if(order.equals("执行")) {
                    addMessageColorText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(1), R.color.green);
                } else {
                    addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(1));
                }
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(2));
                addMessageText(linearLayout, Constant.TITLE_TIME_WIDTH, contentList.get(3));
                addMessageText(linearLayout, Constant.TITLE_TIME_WIDTH, contentList.get(4));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(5));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(6));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(7));
                addMessageText(linearLayout, Constant.TITLE_TIME_WIDTH, contentList.get(8));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(9));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(10));
                addMessageText(linearLayout, Constant.TITLE_TIME_WIDTH, contentList.get(11));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(12));
                addMessageText(linearLayout, Constant.TITLE_TIME_WIDTH, contentList.get(13));
                setSelectBackground(helper, pos);
            }
        };
    }

    @Override
    public void setDatas(List<BaseBean> baseBeans, int type) {
        List<TableModel> mDatas = new ArrayList<>();
        for (BaseBean baseBean : baseBeans) {
            TableModel tableMode = new TableModel();
            ShipmentDetail shipmentDetail = (ShipmentDetail) baseBean;
            ArrayList<String> contentList = new ArrayList<>();
            contentList.add(String.valueOf(shipmentDetail.getId()));
            contentList.add(getStatus(shipmentDetail.getEnable()));
            contentList.add(shipmentDetail.getProject());
            contentList.add(shipmentDetail.getMaterialCode());
            contentList.add(shipmentDetail.getMaterialName());
            contentList.add(shipmentDetail.getUserDef1());
            contentList.add(String.valueOf(shipmentDetail.getQty()));
            contentList.add(String.valueOf(shipmentDetail.getQtyCompleted()));
            contentList.add(shipmentDetail.getShipmentCode());
            contentList.add(String.valueOf(shipmentDetail.getStatus()));
            contentList.add(String.valueOf(shipmentDetail.getCreatedBy()));
            contentList.add(String.valueOf(shipmentDetail.getCreated()));
            contentList.add(String.valueOf(shipmentDetail.getLastUpdatedBy()));
            contentList.add(String.valueOf(shipmentDetail.getLastUpdated()));
            tableMode.setContentList(contentList);
            mDatas.add(tableMode);
        }
        mRightAdapter.addData(mDatas, false);
        //加载数据成功,增加页数
        mDatas.clear();
    }

    private String getStatus(boolean enable) {
        if(enable) {
            return "执行";
        } else {
            return "暂停";
        }
    }


    @OnClick({R.id.executeOrder, R.id.pauseOrder, R.id.deleteOrder})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.executeOrder:
                if(!enableSelctBean()) {
                    return;
                }
                ShipmentDetail shipmentDetail =  (ShipmentDetail) selectTableBeans.get(0);
                createWorkOrder(shipmentDetail.getId(), "START");
                break;
            case R.id.pauseOrder:
                if(!enableSelctBean()) {
                    return;
                }
                ShipmentDetail shipmentDetail2 =  (ShipmentDetail) selectTableBeans.get(0);
                createWorkOrder(shipmentDetail2.getId(), "STOP");
                break;
            case R.id.deleteOrder:
                if(!enableSelctBean()) {
                    return;
                }
                ShipmentDetail shipmentDetail3 =  (ShipmentDetail) selectTableBeans.get(0);
                createWorkOrder(shipmentDetail3.getId(), "DELETE");
                break;

        }
    }

    private class MyHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 0:
                    getFormView(pageNo);
                    break;
                case 1:
                    upPageNo = (int)msg.obj;
                    getFormView(upPageNo, true);
                    break;
            }
        }
    }

    @Override
    protected void getTalbeByCondition(int page) {
        try {
            myHandler.removeMessages(0);
            Message msg = new Message();
            msg.what = 1;
            msg.obj = page;
            myHandler.sendMessage(msg);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void getFormView(int page) {
        getFormView(page, false);
    }

    private void getFormView(int page, boolean show) {
        upPageNo = page;
        ProgressSubscriber progressSubscriber =  new ProgressSubscriber<OrderTable>(mContext, formViewListener);
        progressSubscriber.setShow(show);
        HttpInterface.getInsstance(mContext).formView(progressSubscriber, page, pageSize);
    }

    SubscriberOnNextListener formViewListener = new SubscriberOnNextListener<OrderTable>() {
        @Override
        public void onNext(OrderTable orderTable) {
//            clearSelectBean();
            tableBeans = (List) orderTable.getList();
            pageNo = upPageNo;
            setData(tableBeans);
            freshMenuText(orderTable.getTotal());
            myHandler.sendEmptyMessageDelayed(0, DELAY);
        }

        @Override
        public void onError(String str) {
            upPageNo = pageNo;
            mRightAdapter.clearData(true);
            myHandler.sendEmptyMessageDelayed(0, DELAY);
        }
    };


    private void createWorkOrder(int id, String state) {
        HttpInterface.getInsstance(mContext).createWorkOrder(new ProgressSubscriber<String>(mContext, orderListener), id, state);
    }

    SubscriberOnNextListener orderListener = new SubscriberOnNextListener<String>() {
        @Override
        public void onNext(String result) {
            clearSelectBean();
            getFormView(pageNo);
            WMSUtils.showShort(mContext,mContext.getString(R.string.success_order));
        }

        @Override
        public void onError(String str) {
            getFormView(pageNo);
        }
    };

}