From db2c035c3406d310af30094ec2bbf55ab396bf83 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期二, 01 八月 2017 18:25:46 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java |  391 ++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 257 insertions(+), 134 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
index 50c90df..b57d153 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
@@ -1,75 +1,68 @@
 package cn.com.basic.face.fragment;
 
-import android.os.Bundle;
+import android.content.Context;
 import android.text.Editable;
 import android.text.TextWatcher;
-import android.view.Gravity;
-import android.view.LayoutInflater;
 import android.view.View;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
-import android.widget.TextView;
+import android.widget.Toast;
 
 import com.bsk.zhangbo.demoforbsk.R;
 
-import cn.com.basic.face.adapter.CheckInRightCellAdapter;
-import cn.com.basic.face.base.MainUIBaseFragment;
-import cn.com.basic.face.listeners.OkButtonClickedListener;
+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.discern.query.item.OfflineVisitItem;
+import cn.com.basic.face.util.Constant;
+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.util.Constant;
-import cn.com.basic.face.widget.CheckInIntervieweeCell;
-import cn.com.basic.face.widget.CheckInLeftListView;
-import cn.com.basic.face.widget.CheckInRightVisitorCell;
-import cn.com.basic.face.widget.VisitPurposeDialog;
-import com.camnter.easyrecyclerview.widget.EasyRecyclerView;
-import com.lidroid.xutils.ViewUtils;
+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.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import cn.com.basic.face.discern.common.CommonVariables;
 import cn.com.basic.face.discern.entity.Visit;
 import cn.com.basic.face.discern.query.item.CheckInQueryItem;
 
-public class CheckInFragment extends MainUIBaseFragment {
+public class CheckInFragment extends LeftRightBaseFragment {
 
     private static CheckInFragment instance = new CheckInFragment();
     public static CheckInFragment getInstance() {
         return instance;
     }
     
-    private View fragment_check_in_left;
-    private View fragment_check_in_right;
-    
-    private CheckInRightCellAdapter mAdapter;
-    private List mList = new ArrayList();;
-    
-    @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;
     @ViewInject(R.id.fragment_check_in_right_interviewee_cell)
-    private CheckInIntervieweeCell 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_list_view)
-    private CheckInLeftListView fragment_check_in_left_list_view;
+    @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;
+    private EditText 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)
@@ -78,124 +71,254 @@
     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;
-    @ViewInject(R.id.fragment_check_in_left_sort_by_name_radio_button)
-    private RadioButton fragment_check_in_left_sort_by_name_radio_button;
+
+    private String visitorSearchText;
+    private String intervieweeSearchText;
+    private boolean ignoreSearchText = false;
+
+    private int pageNum = 1;
 
     private CheckInMng manager = CheckInMng.getInstance();
+
+    @Override
+    public int[] getLeftRightLayoutIds() {
+        return new int[]{R.layout.fragment_check_in_left, R.layout.fragment_check_in_right};
+    }
+
+    @Override
+    protected void initListeners() {
+        super.initListeners();
+
+        ((RadioGroup)getLeftView().findViewById(R.id.fragment_check_in_left_radio_group))
+                .setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+                    @Override
+                    public void onCheckedChanged(RadioGroup radioGroup, int i) {
+                        if (fragment_check_in_left_visitor_radio.isChecked()) {
+                            List prevList = fragment_check_in_left_visitor.getPrevList();
+                            if (prevList == null || prevList.size() == 0) {
+                                reloadCheckInLeftList();
+                            } else {
+                                ignoreSearchText = true;
+                                fragment_check_in_left_search_edit_text.setText(visitorSearchText);
+                            }
+                        } else {
+                            fragment_check_in_left_search_edit_text.setText(intervieweeSearchText);
+                            List prevList = fragment_check_in_left_interviewee.getPrevList();
+                            if (prevList == null || prevList.size() == 0) {
+                                reloadCheckInLeftList();
+                            }
+                        }
+                    }
+                });
+
+        ((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) {
+                if (fragment_check_in_left_visitor_radio.isChecked()) {
+                    visitorSearchText = editable.toString();
+                } else {
+                    intervieweeSearchText = editable.toString();
+                }
+                reloadCheckInLeftList();
+            }
+        });
+        setupUI(getView());
+    }
+
+    public void append() {
+        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(), pageNum, true);
+    }
+
+    public void addPageNum() {
+        pageNum++;
+    }
+
+    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);
+        if (ignoreSearchText) {
+            ignoreSearchText = false;
+        } else {
+            pageNum = 1;
+            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(), pageNum, false);
+        }
+    }
+
+    public void selectVisiteeRadio() {
+        fragment_check_in_left_interviewee_radio.callOnClick();
+        fragment_check_in_left_interviewee_radio.setChecked(true);
+    }
+
+    @Override
+    public void setMenuVisibility(boolean menuVisible) {
+        super.setMenuVisibility(menuVisible);
+        if (menuVisible) {
+            reloadCheckInLeftList();
+        }
+    }
+
+    @OnClick(R.id.fragment_check_in_left_back)
+    public void fragment_check_in_left_back_click(View view) {
+        MainActivity.selectPage(0);
+    }
+
+    @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) { resetForm(); }
+
+    @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();
+        OfflineVisitItem offlineVisitItem = new OfflineVisitItem();
+        String visitReasonId = DictionaryMng.getInstance().getId(fragment_check_in_right_visitor_reason.getText().toString());
+        if(BaseApplication.getInstance().networkAvailable()) {
+            params.addBodyParameter(Visit.FieldNames.visitReasonId, visitReasonId);
+            params.addBodyParameter(Visit.FieldNames.visitReason, 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.VisitType.VISITOR_ENTERED);
+            params.addBodyParameter(Visit.FieldNames.warning, visitor.getWarning());
+
+            params.addBodyParameter(VisitDetail.FieldNames.stateId, ""+CommonVariables.VisitType.VISITOR_ENTERED);
+            params.addBodyParameter(VisitDetail.FieldNames.createTime, sdf.format(new Date()));
+            params.addBodyParameter(VisitDetail.FieldNames.deviceId, BaseApplication.getInstance().getAndroidDevice().getDeviceId());
+        } else {
+            offlineVisitItem.setVisitId(UUID.randomUUID().toString());
+            offlineVisitItem.setVisitReasonId(visitReasonId);
+            offlineVisitItem.setVisitReason(fragment_check_in_right_visitor_reason.getText().toString());
+            offlineVisitItem.setRemark(fragment_check_in_right_remark.getText().toString());
+            offlineVisitItem.setVisitorId(visitor.getRegisterId());
+            offlineVisitItem.setVisiteeId(interviewee.getRegisterId());
+            offlineVisitItem.setVisitorCompanyId(visitor.getCompanyId());
+            offlineVisitItem.setVisiteeCompanyId(interviewee.getCompanyId());
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            offlineVisitItem.setEnterTime(sdf.format(new Date()));
+            offlineVisitItem.setCurrentStateId(""+CommonVariables.VisitType.VISITOR_ENTERED);
+            offlineVisitItem.setWarning(visitor.getWarning());
+            offlineVisitItem.setCreateTime(sdf.format(new Date()));
+            //offlineVisitItem.setDeviceId(BaseApplication.getInstance().getAndroidDevice().getDeviceId());
+            offlineVisitItem.setDeviceCompanyId(BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+            offlineVisitItem.setIsSynchron("N");
+            offlineVisitItem.setDeviceId(BaseApplication.getInstance().getAndroidDevice().getDeviceId());
+        }
+        CheckInMng.getInstance().add(params, visitReasonId, offlineVisitItem);
+    }
+
+    @OnClick(R.id.fragment_check_in_right_visitor_reason_text_view)
+    public void fragment_check_in_right_visitor_reason_linear_layout_click(View view) {
+        //fragment_check_in_right_visitor_reason_click(view);
+    }
+
+    //@OnClick(R.id.fragment_check_in_right_visitor_reason)
+    public void fragment_check_in_right_visitor_reason_click(View view) {
+
+    }
+
+    @OnClick(R.id.fragment_check_in_right_visitor_reason_more)
+    public void fragment_check_in_right_visitor_reason_more_click(View view) {
+        InputMethodManager imm = (InputMethodManager)MainActivity.getInstance().getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        imm.hideSoftInputFromWindow(fragment_check_in_right_visitor_reason.getWindowToken(), 0);
+        new SelectDialog(getView(), Constant.DialogSelectType.VISIT_REASON, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_check_in_right_visitor_reason.setText(value);
+            }
+        }, fragment_check_in_right_visitor_reason.getText().toString());
+//        fragment_check_in_right_visitor_reason.setFocusable(false);
+//        fragment_check_in_right_visitor_reason.setClickable(false);
+    }
+
+    @OnClick(R.id.fragment_check_in_right_parent)
+    public void fragment_check_in_right_linear_layout_click(View view) {
+        InputMethodManager imm = (InputMethodManager)MainActivity.getInstance().getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        imm.hideSoftInputFromWindow(fragment_check_in_right_visitor_reason.getWindowToken(), 0);
+    }
+
+    @OnClick(R.id.fragment_check_in_left_parent)
+    public void fragment_check_in_left_parent_click(View view) {
+        InputMethodManager imm = (InputMethodManager)MainActivity.getInstance().getSystemService(
+                Context.INPUT_METHOD_SERVICE);
+        imm.hideSoftInputFromWindow(fragment_check_in_right_visitor_reason.getWindowToken(), 0);
+    }
+
+    @OnClick(R.id.fragment_check_in_right_visitor_reason_edit)
+    public void fragment_check_in_right_visitor_reason_edit_click(View view) {
+        fragment_check_in_right_visitor_reason.setFocusableInTouchMode(true);
+        fragment_check_in_right_visitor_reason.requestFocus();
+        InputMethodManager imm = (InputMethodManager)MainActivity.getInstance().getSystemService(Context.INPUT_METHOD_SERVICE);
+        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
+    }
+
+    public void checkInFromHomePage(CheckInQueryItem item) {
+        getFragment_check_in_right_visitor_cell().setVisitorInfo(item);
+        fragment_check_in_left_interviewee_radio.performClick();
+    }
 
     public CheckInRightVisitorCell getFragment_check_in_right_visitor_cell() {
         return this.fragment_check_in_right_visitor_cell;
     }
 
-    public CheckInIntervieweeCell getFragment_check_in_right_interviewee_cell() {
+    public CheckInRightIntervieweeCell getFragment_check_in_right_interviewee_cell() {
         return this.fragment_check_in_right_interviewee_cell;
     }
 
-    private List<String> visitPurposeList = new ArrayList<String>();
-
-    @Override
-    public View addLeftLayout() {
-        fragment_check_in_left = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_check_in_left,null);
-        ViewUtils.inject(this, fragment_check_in_left);
-        mAdapter = new CheckInRightCellAdapter(getActivity(),Constant.VISITOR_ROW);
-        return fragment_check_in_left;
+    public CheckInLeftInterviewee get_fragment_check_in_left_interviewee() {
+        return fragment_check_in_left_interviewee;
     }
 
-    @Override
-    public View addRightLayout() {
-        fragment_check_in_right = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_check_in_right,null);
-        ViewUtils.inject(this, fragment_check_in_right);
-        return fragment_check_in_right;
+    public CheckInLeftVisitor get_fragment_check_in_left_visitor() {
+        return fragment_check_in_left_visitor;
     }
 
-    @Override
-    protected void initViews(View view, Bundle savedInstanceState) {
-        super.initViews(view, savedInstanceState);
+    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();
     }
 
-    @Override
-    protected void initListeners() {
-        fragment_check_in_left_radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
-            @Override
-            public void onCheckedChanged(RadioGroup radioGroup, int i) {
-                reloadCheckInLeftList();
-            }
-        });
-
-        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(); }
-        });
-
+    public void setVisitReasonText(String value) {
+        fragment_check_in_right_visitor_reason.setText(value);
     }
 
-    private void reloadCheckInLeftList() {
-        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
-    protected void initData() { manager.findCheckInLeftList(true, false, fragment_check_in_left_search_edit_text.getText().toString()); }
-
-    @OnClick(R.id.fragment_check_in_left_back)
-    public void back(View view) {
-        MainActivity.selectPage(0);
-    }
-
-    @OnClick(R.id.fragment_check_in_right_print)
-    public void print(View view) { }
-
-    @OnClick(R.id.fragment_check_in_right_add)
-    public void add(View view) { }
-
-    @OnClick(R.id.fragment_check_in_right_save)
-    public void save(View view) {
-        CheckInQueryItem visitor = fragment_check_in_right_visitor_cell.getVisitor();
-        CheckInQueryItem interviewee = fragment_check_in_right_interviewee_cell.getInterviewee();
-        if (visitor == null || interviewee == null) {
-            return;
-        }
-        RequestParams params = new RequestParams();
-        params.addBodyParameter(Visit.FieldNames.matterId, DictionaryMng.getInstance().getId(CommonVariables.DictionaryType.VISIT_PURPOSE+ fragment_check_in_right_visitor_reason.getText().toString()));
-        params.addBodyParameter(Visit.FieldNames.remark, fragment_check_in_right_remark.getText().toString());
-        params.addBodyParameter(Visit.FieldNames.visitorPersonId, visitor.getId());
-        params.addBodyParameter(Visit.FieldNames.visiteePersonId, interviewee.getId());
-        params.addBodyParameter(Visit.FieldNames.visitorCompanyId, visitor.getCompanyId());
-        params.addBodyParameter(Visit.FieldNames.visiteeCompanyId, interviewee.getCompanyId());
-
-        CheckInMng.getInstance().add(params);
-    }
-
-    @OnClick(R.id.fragment_check_in_right_visitor_reason)
-    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) {
-                fragment_check_in_right_visitor_reason.setText(item);
-            }
-        });
-    }
-
-    public void checkInFromHomePage(CheckInQueryItem item) {
-        fragment_check_in_left_interviewee_radio.performClick();
-    }
-
-    public void setVisitPurposeList(List<String> visitPurposeList) {
-        this.visitPurposeList = visitPurposeList;
-    }
-
-    public CheckInLeftListView get_fragment_check_in_left_list_view() {
-        return fragment_check_in_left_list_view;
-    }
 }

--
Gitblit v1.8.0