xuxiuxi
2017-04-11 a4559fbb7221023f2798d38bc9634906876259a5
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
@@ -1,15 +1,9 @@
package cn.com.basic.face.fragment;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
@@ -17,321 +11,199 @@
import android.widget.Toast;
import com.bsk.zhangbo.demoforbsk.R;
import cn.com.basic.face.adapter.VisitorRecyclerViewAdapter;
import cn.com.basic.face.base.MainUIBaseFragment;
import cn.com.basic.face.listeners.OkButtonClickedListener;
import cn.com.basic.face.service.DictionaryMng;
import cn.com.basic.face.service.VisitorCheckInMng;
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.util.AppApi;
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.base.LeftRightBaseFragment;
import cn.com.basic.face.dialog.SelectDialog;
import cn.com.basic.face.discern.entity.VisitDetail;
import cn.com.basic.face.util.Constant;
import cn.com.basic.face.widget.VisitPurposeDialog;
import cn.com.basic.face.widget.VisitorView;
import com.camnter.easyrecyclerview.widget.EasyRecyclerView;
import com.lidroid.xutils.ViewUtils;
import cn.com.basic.face.util.OkClickedListener;
import cn.com.basic.face.service.DictionaryMng;
import cn.com.basic.face.service.CheckInMng;
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.widget.checkin.CheckInLeftVisitor;
import cn.com.basic.face.widget.checkin.CheckInRightIntervieweeCell;
import cn.com.basic.face.widget.checkin.CheckInLeftInterviewee;
import cn.com.basic.face.widget.checkin.CheckInRightVisitorCell;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import org.xutils.http.RequestParams;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.discern.entity.Visit;
import cn.com.basic.face.discern.query.item.FacePhotoItem;
import cn.com.basic.face.discern.query.item.VisitorQueryItem;
import cn.com.basic.face.discern.query.item.CheckInQueryItem;
/**
 * Created by Administrator on 2017/2/20 0020.
 */
public class CheckInFragment extends MainUIBaseFragment {
    private View fragment_check_in_left;
    private View fragment_check_in_right;
    @ViewInject(R.id.fragment_check_in_left_radio_group)
    private RadioGroup fragment_check_in_left_radio_group;
    @ViewInject(R.id.fragment_check_in_left_sort_radio_group)
    private RadioGroup fragment_check_in_left_sort_radio_group;
    @ViewInject(R.id.fragment_check_in_left_sort_type_linear_layout)
    private LinearLayout fragment_check_in_left_sort_type_linear_layout;
    private VisitorView right, left;
    private VisitorRecyclerViewAdapter mAdapter;
    private EasyRecyclerView fragment_check_in_left_list_view;
    private List mList = new ArrayList();;
public class CheckInFragment extends LeftRightBaseFragment {
    private static CheckInFragment instance = new CheckInFragment();
    private TextView leftCompanyName;
    private TextView leftIdentityNumber;
    private ImageView leftPhoto;
    private TextView leftMobilePhone;
    private TextView rightDepartment;
    private TextView rightPost;
    private TextView rightMobilePhone;
    private TextView rightTel;
    //private TextView visitorReasonTv;
    private List<String> visitPurposeList = new ArrayList<String>();
    private VisitorQueryItem selectedVisitor;
    private VisitorQueryItem selectedInterviewee;
    @ViewInject(R.id.visitor_remark_et)
    private EditText visitorRemarkEt;
    @ViewInject(R.id.visitor_reason_tv)
    private TextView visitorReasonTv;
    @ViewInject(R.id.fragment_check_in_left_search_edit_text)
    private EditText visitorRegisterSearchEt;
    @ViewInject(R.id.fragment_check_in_left_visitor_radio)
    private RadioButton visitorRegisterRbLeft;
    @ViewInject(R.id.fragment_check_in_left_sort_by_dept_radio_button)
    private RadioButton visitorRegisterCheckDepartment;
    private ImageView rightPhoto;
    public static CheckInFragment getInstance() {
        return instance;
    }
    @ViewInject(R.id.fragment_check_in_left_sort_type_linear_layout)
    private LinearLayout fragment_check_in_left_sort_type_linear_layout;
    @ViewInject(R.id.fragment_check_in_right_interviewee_cell)
    private CheckInRightIntervieweeCell fragment_check_in_right_interviewee_cell;
    @ViewInject(R.id.fragment_check_in_right_visitor_cell)
    private CheckInRightVisitorCell fragment_check_in_right_visitor_cell;
    @ViewInject(R.id.fragment_check_in_left_visitor)
    private CheckInLeftVisitor fragment_check_in_left_visitor;
    @ViewInject(R.id.fragment_check_in_left_interviewee)
    private CheckInLeftInterviewee fragment_check_in_left_interviewee;
    @ViewInject(R.id.fragment_check_in_right_remark)
    private EditText fragment_check_in_right_remark;
    @ViewInject(R.id.fragment_check_in_right_visitor_reason)
    private TextView fragment_check_in_right_visitor_reason;
    @ViewInject(R.id.fragment_check_in_left_search_edit_text)
    private EditText fragment_check_in_left_search_edit_text;
    @ViewInject(R.id.fragment_check_in_left_visitor_radio)
    private RadioButton fragment_check_in_left_visitor_radio;
    @ViewInject(R.id.fragment_check_in_left_sort_by_dept_radio_button)
    private RadioButton fragment_check_in_left_sort_by_dept_radio_button;
    @ViewInject(R.id.fragment_check_in_left_interviewee_radio)
    private RadioButton fragment_check_in_left_interviewee_radio;
    private CheckInMng manager = CheckInMng.getInstance();
    @Override
    protected void initViews(View view, Bundle savedInstanceState) {
        super.initViews(view, savedInstanceState);
    public int[] getLeftRightLayoutIds() {
        return new int[]{R.layout.fragment_check_in_left, R.layout.fragment_check_in_right};
    }
    @Override
    protected void initListeners() {
        fragment_check_in_left_radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (radioGroup.getCheckedRadioButtonId()){
                    case R.id.fragment_check_in_left_visitor_radio:
                        fragment_check_in_left_sort_type_linear_layout.setVisibility(View.GONE);
                        mAdapter = new VisitorRecyclerViewAdapter(getActivity(), Constant.VISITOR_FROM);
                        //mList.clear();
                        mAdapter.setList(mList);
                        fragment_check_in_left_list_view.setAdapter(mAdapter);
                        int pageNum = 1;
                        VisitorCheckInMng.getInstance().findVisitorList(pageNum+"", visitorRegisterSearchEt.getText().toString(), true);
                        break;
                    case R.id.fragment_check_in_left_interviewee_radio:
                        fragment_check_in_left_sort_type_linear_layout.setVisibility(View.VISIBLE);
                        mAdapter = new VisitorRecyclerViewAdapter(getActivity(), Constant.VISITOR_TO);
                        mAdapter.setVisitorToColor(VisitorRecyclerViewAdapter.TYPE_NAME);
                        //mList.clear();
                        mAdapter.setList(mList);
                        fragment_check_in_left_list_view.setAdapter(mAdapter);
                        int pageNum1 = 1;
                        VisitorCheckInMng.getInstance().findIntervieweeList(pageNum1+"", visitorRegisterSearchEt.getText().toString(), true);
                        break;
                }
            }
        });
        fragment_check_in_left_sort_radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (radioGroup.getCheckedRadioButtonId()){
                    case R.id.fragment_check_in_left_sort_by_name_radio_button:
//                        mAdapter.setVisitorToTextColor(VisitorRecyclerViewAdapter.TYPE_NAME);
                        mAdapter.setVisitorToColor(VisitorRecyclerViewAdapter.TYPE_NAME);
                        sort(mList, false);
                        mAdapter.setList(mList);
                        fragment_check_in_left_list_view.setAdapter(mAdapter);
                        break;
                    case R.id.fragment_check_in_left_sort_by_dept_radio_button:
//                        mAdapter.setVisitorToTextColor(VisitorRecyclerViewAdapter.TYPE_DEPARTMENT);
                        mAdapter.setVisitorToColor(VisitorRecyclerViewAdapter.TYPE_DEPARTMENT);
                        sort(mList, true);
                        mAdapter.setList(mList);
                        fragment_check_in_left_list_view.setAdapter(mAdapter);
        super.initListeners();
                        break;
                }
            }
        });
        visitorRegisterSearchEt.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
            @Override
            public void afterTextChanged(Editable editable) {
                loadList();
            }
        });
    }
    public void loadList() {
        if (visitorRegisterRbLeft.isChecked()) {
            VisitorCheckInMng.getInstance().findVisitorList(1+"", visitorRegisterSearchEt.getText().toString(), true);
        } else {
            VisitorCheckInMng.getInstance().findIntervieweeList(1+"", visitorRegisterSearchEt.getText().toString(), true);
        }
    }
    private void sort(List<VisitorQueryItem> list, final boolean sortedByDept) {
        Collections.sort(list, new Comparator<VisitorQueryItem>() {
            @Override
            public int compare(VisitorQueryItem t1, VisitorQueryItem t2) {
                if (sortedByDept) {
                    String dept1Name = t1.getDeptName()==null?"":t1.getDeptName();
                    String dept2Name = t2.getDeptName()==null?"":t2.getDeptName();
                    if(!dept1Name.equals(dept2Name)) {
                        return dept1Name.compareTo(dept2Name);
        ((RadioGroup)getLeftView().findViewById(R.id.fragment_check_in_left_radio_group))
                .setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(RadioGroup radioGroup, int i) {
                        reloadCheckInLeftList();
                    }
                }
                String name1 = t1.getName()==null?"":t1.getName();
                String name2 = t2.getName()==null?"":t2.getName();
                return name1.compareTo(name2);
            }
                });
        ((RadioGroup)getLeftView().findViewById(R.id.fragment_check_in_left_sort_radio_group))
                .setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(RadioGroup radioGroup, int i) {
                        reloadCheckInLeftList();
                    }
                });
        fragment_check_in_left_search_edit_text.addTextChangedListener(new TextWatcher() {
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
            public void afterTextChanged(Editable editable) { reloadCheckInLeftList(); }
        });
    }
    @Override
    protected void initData() {
        loadList();
    private void reloadCheckInLeftList() {
        fragment_check_in_left_sort_type_linear_layout.setVisibility(!fragment_check_in_left_visitor_radio.isChecked()?View.VISIBLE:View.GONE);
        fragment_check_in_left_interviewee.setVisibility(!fragment_check_in_left_visitor_radio.isChecked()?View.VISIBLE:View.GONE);
        fragment_check_in_left_visitor.setVisibility(fragment_check_in_left_visitor_radio.isChecked()?View.VISIBLE:View.GONE);
        manager.findCheckInLeftList(fragment_check_in_left_visitor_radio.isChecked(),
                fragment_check_in_left_sort_by_dept_radio_button.isChecked(),
                fragment_check_in_left_search_edit_text.getText().toString());
    }
    @Override
    public View addLeftLayout() {
        fragment_check_in_left = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_check_in_left,null);
        fragment_check_in_left_radio_group = (RadioGroup) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_radio_group);
        fragment_check_in_left_sort_radio_group = (RadioGroup) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_sort_radio_group);
        fragment_check_in_left_sort_type_linear_layout = (LinearLayout) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_sort_type_linear_layout);
        fragment_check_in_left_list_view = (EasyRecyclerView) fragment_check_in_left.findViewById(R.id.fragment_check_in_left_list_view);
        LinearLayoutManager manager = new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
        fragment_check_in_left_list_view.setLayoutManager(manager);
        mAdapter = new VisitorRecyclerViewAdapter(getActivity(),Constant.VISITOR_FROM);
        ViewUtils.inject(this, fragment_check_in_left);
        return fragment_check_in_left;
    }
    @Override
    public View addRightLayout() {
        fragment_check_in_right = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_check_in_right,null);
        left = (VisitorView) fragment_check_in_right.findViewById(R.id.visitor_view_left);
        left.setType(Constant.VISITOR_FROM);
        left.setTitle("");
        leftCompanyName = (TextView) left.findViewById(R.id.visitor_view_left_company_name);
        leftIdentityNumber = (TextView) left.findViewById(R.id.visitor_view_left_identity_number);
        leftMobilePhone = (TextView) left.findViewById(R.id.visitor_view_left_phone);
        leftPhoto = (ImageView) left.findViewById(R.id.visitor_view_left_photo);
        right = (VisitorView) fragment_check_in_right.findViewById(R.id.visitor_view_right);
        right.setType(Constant.VISITOR_TO);
        right.setTitle("");
        rightDepartment = (TextView) right.findViewById(R.id.view_visitor_right_deptartment);
        rightPost = (TextView) right.findViewById(R.id.view_visitor_right_post);
        rightMobilePhone = (TextView) right.findViewById(R.id.visitor_right_phone);
        rightTel = (TextView) right.findViewById(R.id.visitor_right_tel);
        rightPhoto = (ImageView) right.findViewById(R.id.visitor_view_right_photo);
        ViewUtils.inject(this, fragment_check_in_right);
        return fragment_check_in_right;
    public void setMenuVisibility(boolean menuVisible) {
        super.setMenuVisibility(menuVisible);
        if (menuVisible) {
            reloadCheckInLeftList();
        }
    }
    @OnClick(R.id.fragment_check_in_left_back)
    public void back(View view) {
    public void fragment_check_in_left_back_click(View view) {
        MainActivity.selectPage(0);
    }
    @OnClick(R.id.visitor_register_print)
    public void print(View view) {
    @OnClick(R.id.fragment_check_in_right_print)
    public void fragment_check_in_right_print_click(View view) { }
    }
    @OnClick(R.id.fragment_check_in_right_add)
    public void fragment_check_in_right_add_click(View view) { }
    @OnClick(R.id.visitor_register_add)
    public void add(View view) {
    }
    @OnClick(R.id.visitor_register_save)
    public void save(View view) {
        if (selectedVisitor == null || selectedInterviewee == null) {
    @OnClick(R.id.fragment_check_in_right_save)
    public void fragment_check_in_right_save_click(View view) {
        CheckInQueryItem visitor = fragment_check_in_right_visitor_cell.getVisitor();
        CheckInQueryItem interviewee = fragment_check_in_right_interviewee_cell.getInterviewee();
        if (visitor == null) {
            Toast.makeText(MainActivity.getInstance(), "请选择来访人员", Toast.LENGTH_SHORT).show();
            return;
        }
        if (interviewee == null) {
            Toast.makeText(MainActivity.getInstance(), "请选择被访人员", Toast.LENGTH_SHORT).show();
            return;
        }
        String right_visitor_reason = fragment_check_in_right_visitor_reason.getText().toString().trim();
        if (right_visitor_reason.length() == 0) {
            Toast.makeText(MainActivity.getInstance(), "拜访事由不能为空", Toast.LENGTH_SHORT).show();
            return;
        }
        RequestParams params = new RequestParams();
        params.addBodyParameter(Visit.FieldNames.matterId, DictionaryMng.getInstance().getId(CommonVariables.DictionaryType.VISIT_PURPOSE+visitorReasonTv.getText().toString()));
        params.addBodyParameter(Visit.FieldNames.remark, visitorRemarkEt.getText().toString());
        params.addBodyParameter(Visit.FieldNames.visitorPersonId, selectedVisitor.getId());
        params.addBodyParameter(Visit.FieldNames.visiteePersonId, selectedInterviewee.getId());
        params.addBodyParameter(Visit.FieldNames.visitorCompanyId, selectedVisitor.getCompanyId());
        params.addBodyParameter(Visit.FieldNames.visiteeCompanyId, selectedInterviewee.getCompanyId());
        params.addBodyParameter(Visit.FieldNames.visitReasonId, DictionaryMng.getInstance().getId(fragment_check_in_right_visitor_reason.getText().toString()));
        params.addBodyParameter(Visit.FieldNames.remark, fragment_check_in_right_remark.getText().toString());
        params.addBodyParameter(Visit.FieldNames.visitorId, visitor.getRegisterId());
        params.addBodyParameter(Visit.FieldNames.visiteeId, interviewee.getRegisterId());
        params.addBodyParameter(Visit.FieldNames.visitorCompanyId, visitor.getCompanyId());
        params.addBodyParameter(Visit.FieldNames.visiteeCompanyId, interviewee.getCompanyId());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        params.addBodyParameter(Visit.FieldNames.enterTime, sdf.format(new Date()));
        params.addBodyParameter(Visit.FieldNames.currentStateId, ""+CommonVariables.StatusID.VISITOR_ENTERED);
        VisitorCheckInMng.getInstance().add(params);
        //visit detail
        params.addBodyParameter(VisitDetail.FieldNames.stateId, ""+CommonVariables.StatusID.VISITOR_ENTERED);
        params.addBodyParameter(VisitDetail.FieldNames.createTime, sdf.format(new Date()));
        params.addBodyParameter(VisitDetail.FieldNames.deviceId, BaseApplication.getInstance().getDevice().getDeviceId());
        CheckInMng.getInstance().add(params);
    }
    @OnClick(R.id.visitor_reason_tv)
    public void visitorReason(View view) {
        VisitPurposeDialog popup1 = new VisitPurposeDialog(getActivity(),visitPurposeList,"请选择拜访事由");
        popup1.showAtLocation(getView(), Gravity.CENTER,0,0);
        popup1.addOkButtonClickedListener(new OkButtonClickedListener() {
            @Override
            public void onItemSelected(int position, Object o, String item) {
                visitorReasonTv.setText(item);
    @OnClick(R.id.fragment_check_in_right_visitor_reason)
    public void fragment_check_in_right_visitor_reason_click(View view) {
        new SelectDialog(getView(), Constant.DialogSelectType.VISIT_REASON, new OkClickedListener() {
            public void onSelected(String value) {
                fragment_check_in_right_visitor_reason.setText(value);
            }
        });
    }
    public void visitorCheckIn(FacePhotoItem item) {
        left.setTitle(item.getName());
    public void checkInFromHomePage(CheckInQueryItem item) {
        fragment_check_in_left_interviewee_radio.performClick();
    }
    public void visitorCheckIn(VisitorQueryItem item) {
        left.setTitle(item.getName());
        leftMobilePhone.setText(item.getMobilePhone());
        leftCompanyName.setText(item.getCompanyName());
        leftIdentityNumber.setText(item.getIdentify());
        leftPhoto.setImageURI(Uri.parse(AppApi.CHENXINGGROUND_IMAGEURL_BASE + item.getImagePath()));
    public CheckInRightVisitorCell getFragment_check_in_right_visitor_cell() {
        return this.fragment_check_in_right_visitor_cell;
    }
    public void listChanged(List list, boolean isClear) {
        if (isClear) {
            mList.clear();
        }
        if (visitorRegisterCheckDepartment.isChecked()) {
            sort(list, false);
        } else {
            sort(list, true);
        }
        mList.addAll(list);
        mAdapter.setList(mList);
        fragment_check_in_left_list_view.setAdapter(mAdapter);
    public CheckInRightIntervieweeCell getFragment_check_in_right_interviewee_cell() {
        return this.fragment_check_in_right_interviewee_cell;
    }
    public void setVisitorInfo(VisitorQueryItem item) {
        left.setTitle(item.getName());
        leftCompanyName.setText(item.getCompanyName());
        leftIdentityNumber.setText(item.getIdentify());
        leftMobilePhone.setText(item.getPhone());
        leftPhoto.setImageURI(Uri.parse(AppApi.CHENXINGGROUND_IMAGEURL_BASE + item.getImagePath()));
        selectedVisitor = item;
    public CheckInLeftInterviewee get_fragment_check_in_left_interviewee() {
        return fragment_check_in_left_interviewee;
    }
    public void setIntervieweeInfo(final VisitorQueryItem item) {
        right.setTitle(item.getName());
        rightDepartment.setText(item.getDeptName());
        rightPost.setText(item.getPostName());
        rightMobilePhone.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.getInstance(), "正在呼叫手机"+item.getMobilePhone(), Toast.LENGTH_SHORT).show();
            }
        });
        rightTel.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.getInstance(), "正在呼叫座机"+item.getPhone(), Toast.LENGTH_SHORT).show();
            }
        });
        rightPhoto.setImageURI(Uri.parse(AppApi.CHENXINGGROUND_IMAGEURL_BASE + item.getImagePath()));
        selectedInterviewee = item;
    public CheckInLeftVisitor get_fragment_check_in_left_visitor() {
        return fragment_check_in_left_visitor;
    }
    public void setVisitPurposeList(List<String> visitPurposeList) {
        this.visitPurposeList = visitPurposeList;
    public void resetForm() {
        fragment_check_in_right_visitor_reason.setText("");
        fragment_check_in_right_remark.setText("");
        fragment_check_in_right_interviewee_cell.resetForm();
        fragment_check_in_right_visitor_cell.resetForm();
    }
}