ExceptionTableActivity.java 8.32 KB
package com.huaheng.tab;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.huaheng.common.Constant;
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.ExceptionDataBean;
import com.huaheng.common.model.TableModel;
import com.huaheng.httplib.HttpInterface;
import com.huaheng.httplib.Subscribers.ProgressSubscriber;
import com.huaheng.httplib.Subscribers.SubscriberOnNextListener;
import com.huaheng.tab.util.TableActivity;
import com.zbar.scan.ScanCaptureAct;

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

import butterknife.ButterKnife;
import butterknife.OnClick;

public class ExceptionTableActivity extends TableActivity {

    private int RESULT_CODE = 1;
    private String lineCode;

    @Override
    protected void initActivityOnCreate(Bundle savedInstanceState) {
        super.initActivityOnCreate(savedInstanceState);
        setButtonView(R.layout.activity_exception_table);
        ButterKnife.bind(this);
        setTitle(this.getString(R.string.exception_scan));
        getExceptionScanByCondition(pageNo);
        lineCode = "A1_Exception";
        initTableView();
    }

    public void initTableView() {
        addTitleText("ID", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("线体编码", Constant.TITLE_NORMAL_WIDTH);
        addTitleText("条码", 230);
        addTitleText("同步标志", 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_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));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(1));
                addMessageText(linearLayout, 230, contentList.get(2));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(3));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(4));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(5));
                addMessageText(linearLayout, Constant.TITLE_TIME_WIDTH, contentList.get(6));
                addMessageText(linearLayout, Constant.TITLE_NORMAL_WIDTH, contentList.get(7));
                addMessageText(linearLayout, Constant.TITLE_TIME_WIDTH, contentList.get(8));
                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();
            ExceptionBean exceptionBean = (ExceptionBean) baseBean;
            ArrayList<String> contentList = new ArrayList<>();
            contentList.add(String.valueOf(exceptionBean.getId()));
            contentList.add(exceptionBean.getLineCode());
            contentList.add(exceptionBean.getBarcode());
            contentList.add(getSyncFlagDescription(exceptionBean.getSynFlag()));
            contentList.add(exceptionBean.getRemark());
            contentList.add(exceptionBean.getCreatedBy());
            contentList.add(WMSUtils.freshTimeDate(exceptionBean.getCreated()));
            contentList.add(exceptionBean.getUpdatedBy());
            contentList.add(WMSUtils.freshTimeDate(exceptionBean.getUpdated()));
            tableMode.setContentList(contentList);
            mDatas.add(tableMode);
        }
        mRightAdapter.addData(mDatas, false);
        //加载数据成功,增加页数
        mDatas.clear();
    }

    private String getSyncFlagDescription(int syncFlag) {
        switch (syncFlag) {
            case 0:
                return "未提交";
            case 1:
                return "已提交";
            default:
                break;
        }
        return null;
    }

    private void startScanActivity() {
        Intent intent = new Intent();
        intent.setClass(mContext, ScanCaptureAct.class);
        this.startActivityForResult(intent, RESULT_CODE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data != null) {
            String result = data.getExtras().containsKey("SCAN_RESULT") ? data.getExtras().getString("SCAN_RESULT") : null;
            if (result != null) {
                postExceptionStationScanInBarcode(result, 0, "", null);
            }
        }
    }


    @OnClick({R.id.refreshBtn, R.id.scanBtn, R.id.flagCommitBtn, R.id.flagUnCommitBtn})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.refreshBtn:
                getExceptionScanByCondition(upPageNo);
                break;
            case R.id.scanBtn:
                startScanActivity();
                break;
            case R.id.flagCommitBtn:
                if(!enableSelctBean()) {
                    return;
                }
                ExceptionBean exceptionBean =  (ExceptionBean) selectTableBeans.get(0);
                postExceptionStationScanInBarcode(exceptionBean.getBarcode(), 1, exceptionBean.getRemark(), String.valueOf(exceptionBean.getId()));
                break;
            case R.id.flagUnCommitBtn:
                if(!enableSelctBean()) {
                    return;
                }
                ExceptionBean exceptionBean2 = (ExceptionBean) selectTableBeans.get(0);
                postExceptionStationScanInBarcode(exceptionBean2.getBarcode(), 0, exceptionBean2.getRemark(), String.valueOf(exceptionBean2.getId()));
                break;
        }
    }

    @Override
    protected void getTalbeByCondition(int page) {
        getExceptionScanByCondition(page);
    }


    private void getExceptionScanByCondition(int page) {
        upPageNo = page;
        String orderby = "id desc";
        String condition = "";
        HttpInterface.getInsstance(mContext).getExceptionScanByCondition(new ProgressSubscriber<ExceptionDataBean>
                (mContext, exceptionListener), page, pageSize, orderby, condition);
    }

    SubscriberOnNextListener exceptionListener = new SubscriberOnNextListener<ExceptionDataBean>() {
        @Override
        public void onNext(ExceptionDataBean exceptionDataBean) {
            clearSelectBean();
            tableBeans = (List) exceptionDataBean.getDatas();
            pageNo = upPageNo;
            setData(tableBeans);
            freshMenuText(exceptionDataBean.getCount());
        }

        @Override
        public void onError(String str) {
            upPageNo = pageNo;
            mRightAdapter.clearData(true);
        }
    };

    private void postExceptionStationScanInBarcode(String barcode, int synFlag, String remark, String id) {
        String createBy = WMSUtils.getData(mContext, Constant.LOGIN_NAME);
        String updateBy = WMSUtils.getData(mContext, Constant.LOGIN_NAME);
        HttpInterface.getInsstance(mContext).postExceptionStationScanInBarcode(new ProgressSubscriber<String>
                (mContext, exceptionScanInListener), lineCode, barcode, synFlag, remark, id, createBy, updateBy);
    }

    SubscriberOnNextListener exceptionScanInListener = new SubscriberOnNextListener<String>() {
        @Override
        public void onNext(String str) {
            WMSUtils.showShort(mContext, "提交成功");
            getExceptionScanByCondition(upPageNo);
        }

        @Override
        public void onError(String str) {

        }
    };

}