From 8eba4786474eb6ec2861f37bc628d8d5f0aa0d96 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 12 七月 2017 14:09:42 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml                                                     |    3 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java                           |   50 +
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java               |    7 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java                         |    9 
 VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attendance_right.xml                                |    2 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java              |    9 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java           |  485 +++++++++++++
 VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml                |    4 
 VisitFace/DemoForBsk/app/src/main/res/layout/fragment_visitor_register.xml                                |   46 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java                     |   22 
 /dev/null                                                                                                 |  551 ---------------
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java                                 |    9 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java              |  161 ++++
 VisitFace/DemoForBsk/app/src/main/res/values/strings.xml                                                  |    2 
 VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml                                    |    1 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/IdCardReaderThread.java                     |    4 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/register/RegisterRightFieldLabelView.java |   17 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java    |   18 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java              |    9 
 VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml               |   18 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java                |  101 +-
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java            |  529 ++++++++++++++
 VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attender_register.xml                               |   76 -
 23 files changed, 1,390 insertions(+), 743 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml b/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml
index cfa3196..a4c6964 100644
--- a/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml
+++ b/VisitFace/DemoForBsk/app/src/main/AndroidManifest.xml
@@ -18,6 +18,9 @@
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
 
     <uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-feature android:name="android.hardware.camera" />
+    <uses-feature android:name="android.hardware.camera.autofocus" />
 
     <application
         android:name="cn.com.basic.face.base.BaseApplication"
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java
index e2d43ba..facef40 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java
@@ -17,7 +17,6 @@
 import java.util.List;
 
 import cn.com.basic.face.base.MainActivity;
-import cn.com.basic.face.dialog.SurveillancePhotoDialog;
 import cn.com.basic.face.discern.common.CommonVariables;
 import cn.com.basic.face.discern.query.item.CheckInQueryItem;
 import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
@@ -101,9 +100,9 @@
                     public void onClick(View view) {
                         MainActivity.selectPage(1);
                         if(item.getBitmap() != null) {
-                            RegisterFragment.getInstance().setChoosePhoto(item.getBitmap());
-                            RegisterFragment.getInstance().setSurveillanceQueryItem_selectPhoto(item);
-                            RegisterFragment.selectedSurveillancePhotoId = item.getIdForSelect();
+                            VisitorRegisterFragment.getInstance().setChoosePhoto(item.getBitmap());
+                            VisitorRegisterFragment.getInstance().setSurveillanceQueryItem_selectPhoto(item);
+                            VisitorRegisterFragment.selectedSurveillancePhotoId = item.getIdForSelect();
                         }
                     }
                 });
@@ -126,41 +125,24 @@
             TextView fragment_home_bottom_visitor_cell_name = (TextView) mLayout.findViewById(R.id.fragment_home_bottom_visitor_cell_name);
             TextView fragment_home_bottom_visitor_cell_status = (TextView) mLayout.findViewById(R.id.fragment_home_bottom_visitor_cell_status);
 
-
             Object data = this.getItem(position);
-//            if (data instanceof FacePhotoItem) {
-//                final FacePhotoItem item = (FacePhotoItem) data;
-//
-//                if (item.getWarning().length() > 0 && "鏉ヨ鐧昏".equals(item.getStatus())) {
-//                    //warningTv.setText("璀﹀憡");
-//                    fragment_home_bottom_visitor_cell_warning.setVisibility(View.VISIBLE);
-//                } else {
-//                    fragment_home_bottom_visitor_cell_warning.setVisibility(View.GONE);
-//                }
-//
-//                fragment_home_bottom_visitor_cell_name.setText(item.getName());
-//
-//                fragment_home_bottom_visitor_cell_status.setText(item.getStatus());
-//                if ("鏉ヨ鐧昏".equals(item.getStatus())) {
-//                    fragment_home_bottom_visitor_cell_status.setBackground(context.getDrawable(R.drawable.rectangle_textview));
-//
-//                    fragment_home_bottom_visitor_cell_status.setHeight((int)(context.getResources().getDisplayMetrics().density * 45));
-//                    fragment_home_bottom_visitor_cell_status.setOnClickListener(new View.OnClickListener(){
-//                        @Override
-//                        public void onClick(View view) {
-//                            MainActivity.selectPage(2);
-//                        }
-//                    });
-//                } else {
-//                    fragment_home_bottom_visitor_cell_status.setBackground(null);
-//                    fragment_home_bottom_visitor_cell_status.setOnClickListener(null);
-//                }
-//            }
 
             fragment_home_bottom_visitor_cell_name.setText("");
             if (data instanceof SurveillanceQueryItem) {
                 final SurveillanceQueryItem item = (SurveillanceQueryItem)data;
-                fragment_home_bottom_visitor_cell_name.setText(item.getUsername());
+                fragment_home_bottom_visitor_cell_warning.setVisibility(View.VISIBLE);
+                if (item.getWarning() != null && item.getWarning().length() > 0) {
+                    fragment_home_bottom_visitor_cell_photo.setBackgroundColor(Color.RED);
+                    fragment_home_bottom_visitor_cell_warning.setText("璀﹀憡");
+                } else {
+                    fragment_home_bottom_visitor_cell_photo.setBackgroundColor(Color.GRAY);
+                    if (item.getAuthentication() != null && item.getAuthentication().length() > 0) {
+                        fragment_home_bottom_visitor_cell_warning.setText("宸茶璇�");
+                    } else {
+                        fragment_home_bottom_visitor_cell_warning.setText("鏈璇�");
+                    }
+                }
+                fragment_home_bottom_visitor_cell_name.setText(item.getVisitorType());
 
                 if (item.getSurveillancePhoto() != null && !item.getSurveillancePhoto().equals("")) {
                     fragment_home_bottom_visitor_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getSurveillancePhoto()));
@@ -174,6 +156,7 @@
                 }
                 if (1==1) {
                     fragment_home_bottom_visitor_cell_status.setHeight((int)(context.getResources().getDisplayMetrics().density * 45));
+                    fragment_home_bottom_visitor_cell_status.setText(item.getStatus()); //绂诲紑
                     fragment_home_bottom_visitor_cell_photo.setOnClickListener(new View.OnClickListener(){
                         @Override
                         public void onClick(View view) {
@@ -191,12 +174,6 @@
                         }
                     });
                 }
-                if (item.getWarning() != null && "1".equals(item.getWarning())) {
-                    fragment_home_bottom_visitor_cell_warning.setVisibility(View.VISIBLE);
-                } else {
-                    fragment_home_bottom_visitor_cell_warning.setVisibility(View.INVISIBLE);
-                }
-
             }
 
         }
@@ -223,6 +200,17 @@
 
         @Override
         public void onBindRecycleViewHolder(EasyRecyclerViewHolder viewHolder, int position) {
+            Object obj = getList().get(position);
+            if (obj instanceof SurveillanceQueryItem) {
+                if(((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_ATTENDANCE_BLANK) {
+                    return;
+                } else {
+
+                }
+            } else {
+                return;
+            }
+
             RelativeLayout mLayout = viewHolder.findViewById(R.id.fragment_supervisory_bottom_attendance_cell_relative_layout);
             ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams();
             layoutParams.height = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h127dp);
@@ -238,10 +226,10 @@
             fragment_home_bottom_attendance_cell_name.setText("");
             if (data instanceof SurveillanceQueryItem) {
                 final SurveillanceQueryItem item = (SurveillanceQueryItem)data;
-                fragment_home_bottom_attendance_cell_name.setText(item.getUsername());
+                fragment_home_bottom_attendance_cell_name.setText(item.getVisitorType());
 
-                if (item.getImagePath() != null && !item.getImagePath().equals("")) {
-                    fragment_home_bottom_attendance_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getImagePath()));
+                if (item.getSurveillancePhoto() != null && !item.getSurveillancePhoto().equals("")) {
+                    fragment_home_bottom_attendance_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getSurveillancePhoto()));
                 } else {
                     if (item.getBitmap() != null) {
                         fragment_home_bottom_attendance_cell_photo.setImageBitmap(
@@ -258,7 +246,16 @@
 
         @Override
         public int getRecycleViewItemType(int position) {
-            return 0;
+            int type = ((SurveillanceQueryItem)getList().get(position)).getRegisterOrCheckIn();
+            if (type == CommonVariables.Surveillance.VISIT_ATTENDANCE_IN ||
+                    type == CommonVariables.Surveillance.VISIT_ATTENDANCE_OUT
+                    ) {
+                return 0;
+            }
+            if (type == CommonVariables.Surveillance.VISIT_ATTENDANCE_BLANK) {
+                return 1;
+            }
+            return 1;
         }
 
         private CheckInQueryItem getVo(SurveillanceQueryItem item) {
@@ -304,12 +301,20 @@
                     @Override
                     public void onClick(View v) {
                         if (selectPhotoOrUploadPhoto == CommonVariables.SelectPhotoType.SELECT_PHOTO) {
-                            RegisterFragment.getInstance().set_fragment_register_surveillance_photo(item);
-                            RegisterFragment.selectedSurveillancePhotoId = item.getIdForSelect();
+                            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                                VisitorRegisterFragment.getInstance().set_fragment_visitor_register_surveillance_photo(item);
+                                VisitorRegisterFragment.selectedSurveillancePhotoId = item.getIdForSelect();
+                            } else {
+                                //鑰冨嫟
+                            }
                         }
                         if (selectPhotoOrUploadPhoto == CommonVariables.SelectPhotoType.UPLOAD_PHOTO) {
-                            RegisterFragment.getInstance().set_fragment_register_upload_custom_photo(item);
-                            RegisterFragment.selectedCustomPhotoId = item.getIdForSelect();
+                            if (CommonVariables.Register.VISITOR_REGISTER_SELECTED) {
+                                VisitorRegisterFragment.getInstance().set_fragment_visitor_register_upload_custom_photo(item);
+                                VisitorRegisterFragment.selectedCustomPhotoId = item.getIdForSelect();
+                            } else {
+                                //鑰冨嫟
+                            }
                         }
                         for (SurveillanceQueryItem queryItem : (List<SurveillanceQueryItem>)getList()) {
                             queryItem.setSurveillancePhotoSelected(false);
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java
index 2f84b6d..6bfe263 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/MainActivity.java
@@ -1,23 +1,25 @@
 package cn.com.basic.face.base;
 
+import android.Manifest;
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.content.pm.PackageManager;
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Paint;
-import android.graphics.drawable.ColorDrawable;
 import android.hardware.Camera;
 import android.os.Handler;
 import android.support.design.widget.TabLayout;
+import android.support.v4.app.ActivityCompat;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.content.ContextCompat;
 import android.support.v4.view.ViewPager;
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -26,7 +28,6 @@
 import android.view.SurfaceView;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.Window;
 import android.view.WindowManager;
 import android.widget.EditText;
 import android.widget.ImageView;
@@ -39,6 +40,7 @@
 
 import cn.com.basic.face.discern.common.CommonVariables;
 import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
+import cn.com.basic.face.fragment.AttenderRegisterFragment;
 import cn.com.basic.face.fragment.SurveillanceFragment;
 import cn.com.basic.face.service.SurveillanceMng;
 import cn.com.basic.face.util.FileUtil;
@@ -48,13 +50,12 @@
 import cn.com.basic.face.fragment.CheckInFragment;
 import cn.com.basic.face.fragment.DeviceFragment;
 import cn.com.basic.face.fragment.PhoneCallFragment;
-import cn.com.basic.face.fragment.RegisterFragment;
+import cn.com.basic.face.fragment.VisitorRegisterFragment;
 import cn.com.basic.face.fragment.VisitFragment;
 
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.InputStream;
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -91,7 +92,8 @@
         int[] tabIcons = TabNameUtil.tabIcons;
         MyFragmentPagerAdapter myFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager(),MainActivity.this);
         myFragmentPagerAdapter.addFragment(SurveillanceFragment.getInstance(), tabNamesList.get(0),tabIcons[0]);
-        myFragmentPagerAdapter.addFragment(RegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
+//        myFragmentPagerAdapter.addFragment(VisitorRegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
+        myFragmentPagerAdapter.addFragment(AttenderRegisterFragment.getInstance(), tabNamesList.get(1),tabIcons[1]);
         myFragmentPagerAdapter.addFragment(CheckInFragment.getInstance(), tabNamesList.get(2),tabIcons[2]);
         myFragmentPagerAdapter.addFragment(PhoneCallFragment.getInstance(), tabNamesList.get(3),tabIcons[3]);
         myFragmentPagerAdapter.addFragment(VisitFragment.getInstance(), tabNamesList.get(4),tabIcons[4]);
@@ -109,9 +111,10 @@
                 tab.getCustomView().setSelected(true);
             }
         }
-        myThread = new MyThread();
-        myThread.start();
-
+        if (CommonVariables.ID_CARD) {
+            myThread = new MyThread();
+            myThread.start();
+        }
     }
 
     public static MainActivity getInstance() {
@@ -274,6 +277,7 @@
             } else {
                 FSDK.Initialize();
                 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                 mDraw = new ProcessImageAndDrawResults(this);
                 mPreview = new Preview(this, mDraw);
                 mDraw.mTracker = new FSDK.HTracker();
@@ -285,6 +289,16 @@
                     }
                 }
                 resetTrackerParameters();
+
+                //setContentView(mPreview); //creates MainActivity contents
+                //addContentView(mDraw, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+
+                // Menu
+//                LayoutInflater inflater = (LayoutInflater)this.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
+//                View buttons = inflater.inflate(R.layout.bottom_menu, null );
+//                buttons.findViewById(R.id.helpButton).setOnClickListener(this);
+//                buttons.findViewById(R.id.clearButton).setOnClickListener(this);
+//                addContentView(buttons, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
             }
         }
     }
@@ -499,12 +513,24 @@
         } else {
             FSDK.CopyImage(Image, RotatedImage);
         }
+
+//        FSDK.TFacePosition fp11 = new FSDK.TFacePosition();
+//        FSDK.DetectFace(RotatedImage, fp11);
+
+        String surveillancePhotoName11 = "/storage/sdcard1/"+System.currentTimeMillis()+".jpg";
+        FSDK.SaveImageToFile(Image, surveillancePhotoName11);
+
+
         FSDK.FreeImage(Image);
 
         long IDs[] = new long[MAX_FACES];
         long face_count[] = new long[1];
 
+
+
         FSDK.FeedFrame(mTracker, 0, RotatedImage, face_count, IDs);
+
+        System.out.println("face_count="+face_count[0]);
 
         faceLock.lock();
 
@@ -714,12 +740,17 @@
                 frontCameraFound = true;
             }
         }
+        //If authorisation not granted for camera
+        if (ContextCompat.checkSelfPermission(MainActivity.getInstance(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
+            //ask for authorisation
+            ActivityCompat.requestPermissions(MainActivity.getInstance(), new String[]{Manifest.permission.CAMERA}, 50);
 
         if (frontCameraFound) {
             mCamera = Camera.open(cameraId);
         } else {
             mCamera = Camera.open();
         }
+
 
         try {
             mCamera.setPreviewDisplay(holder);
@@ -785,6 +816,7 @@
         List<Camera.Size> supportedSizes = parameters.getSupportedPreviewSizes();
         int width = 0;
         int height = 0;
+        System.out.println("surfaceChanged");
         for (Camera.Size s: supportedSizes) {
             if ((width - 640)*(width - 640) + (height - 480)*(height - 480) >
                     (s.width - 640)*(s.width - 640) + (s.height - 480)*(s.height - 480)) {
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java
index f3a92ae..57fc305 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java
@@ -2,13 +2,11 @@
 
 import android.content.Context;
 import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.EditText;
 import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -24,11 +22,6 @@
 import cn.com.basic.face.base.MainActivity;
 import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
 import cn.com.basic.face.dialog.wheelview.widget.WheelView;
-import cn.com.basic.face.discern.common.CommonVariables;
-import cn.com.basic.face.discern.query.item.SurveillancePhotoQueryItem;
-import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
-import cn.com.basic.face.fragment.SurveillanceFragment;
-import cn.com.basic.face.service.SurveillanceMng;
 import cn.com.basic.face.util.Constant;
 import cn.com.basic.face.util.OkClickedListener;
 import cn.com.basic.face.util.SurveillanceQueryItemUtil;
@@ -64,7 +57,7 @@
         View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_surveillance_photo_select,null);
         ViewUtils.inject(this, view);
 
-        dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterTwoRowsForSelect(selectedId));
+        dialog_surveillance_photo_select_list_view.show(SurveillanceQueryItemUtil.getInstance().getAllUnregisterVisitorTwoRowsForSelect(selectedId));
 
         setTitleAndList(type);
         WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java
index a80bfab..aab5ea0 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/common/CommonVariables.java
@@ -70,6 +70,9 @@
         public static final int VISIT_CHECK_IN_ITEM_TYPE = 2;
         public static final int VISIT_BLANK_ITEM_TYPE = 3;
         public static final int VISIT_ATTENDANCE_ITEM_TYPE = 4;
+        public static final int VISIT_ATTENDANCE_IN = 5;
+        public static final int VISIT_ATTENDANCE_OUT = 6;
+        public static final int VISIT_ATTENDANCE_BLANK = 7;
 
         public static final int REGISTER_CELL_VIEW_INDEX = 0;
         public static final int CHECK_IN_CELL_VIEW_INDEX = 1;
@@ -108,5 +111,11 @@
     }
 
     public static boolean FACE_SERVER = true;
+    public static boolean ID_CARD = false;
+    public static boolean EMULATOR = true;
+
+    public static class Register {
+        public static boolean VISITOR_REGISTER_SELECTED = true;
+    }
 
 }
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java
index a893576..db54c45 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillanceQueryItem.java
@@ -56,6 +56,8 @@
 	private String surveillancePhoto;
 
 	private int stTrackId;
+	private String visitorType;
+	private String authentication;
 
     public SurveillanceQueryItem() {
         if (initialSelectId > 10000) {
@@ -280,4 +282,20 @@
 	public void setStTrackId(int stTrackId) {
 		this.stTrackId = stTrackId;
 	}
+
+	public String getVisitorType() {
+		return visitorType;
+	}
+
+	public void setVisitorType(String visitorType) {
+		this.visitorType = visitorType;
+	}
+
+	public String getAuthentication() {
+		return authentication;
+	}
+
+	public void setAuthentication(String authentication) {
+		this.authentication = authentication;
+	}
 }
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
new file mode 100644
index 0000000..21130f6
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
@@ -0,0 +1,485 @@
+package cn.com.basic.face.fragment;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Environment;
+import android.provider.MediaStore;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.bsk.zhangbo.demoforbsk.R;
+
+import cn.com.basic.face.adapter.SurveillanceFragment;
+import cn.com.basic.face.base.BaseFragment;
+import cn.com.basic.face.dialog.SurveillancePhotoDialog;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.discern.entity.Register;
+import cn.com.basic.face.discern.query.item.CheckInQueryItem;
+import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
+import cn.com.basic.face.service.DictionaryMng;
+import cn.com.basic.face.service.RegisterMng;
+import cn.com.basic.face.util.BitmapUtil;
+import cn.com.basic.face.util.Constant;
+import cn.com.basic.face.util.FileUtil;
+
+import cn.com.basic.face.util.IdCard;
+import cn.com.basic.face.util.IdCardReaderThread;
+import cn.com.basic.face.util.NativeImg;
+import cn.com.basic.face.util.OkClickedListener;
+
+import cn.com.basic.face.util.AppApi;
+import cn.com.basic.face.dialog.DateSelectDialog;
+import cn.com.basic.face.dialog.CountryDialog;
+import cn.com.basic.face.widget.register.RegisterRightFieldLabelView;
+import cn.com.basic.face.widget.register.RegisterRightFieldTextView;
+import cn.com.basic.face.dialog.SelectDialog;
+
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.lidroid.xutils.view.annotation.event.OnClick;
+
+import org.xutils.http.RequestParams;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import cn.com.basic.face.base.MainActivity;
+
+public class AttenderRegisterFragment extends BaseFragment implements View.OnClickListener{
+
+    @ViewInject(R.id.fragment_attender_register_name)
+    private RegisterRightFieldTextView fragment_attender_register_name;
+    @ViewInject(R.id.fragment_attender_register_gender)
+    private RegisterRightFieldLabelView fragment_attender_register_gender;
+    @ViewInject(R.id.fragment_attender_register_post)
+    private RegisterRightFieldLabelView fragment_attender_register_post;
+    @ViewInject(R.id.fragment_attender_register_department)
+    private RegisterRightFieldLabelView fragment_attender_register_department;
+    @ViewInject(R.id.fragment_attender_register_id_class)
+    private RegisterRightFieldLabelView fragment_attender_register_id_class;
+    @ViewInject(R.id.fragment_attender_register_id_num)
+    private RegisterRightFieldTextView fragment_attender_register_id_num;
+    @ViewInject(R.id.fragment_attender_register_remark)
+    private RegisterRightFieldTextView fragment_attender_register_remark;
+    @ViewInject(R.id.fragment_attender_register_surveillance_photo)
+    private ImageView fragment_attender_register_surveillance_photo;
+    @ViewInject(R.id.fragment_attender_register_upload_custom_photo)
+    private ImageView fragment_attender_register_upload_custom_photo;
+    @ViewInject(R.id.fragment_attender_register_id_card_photo)
+    private ImageView fragment_attender_register_id_card_photo;
+    @ViewInject(R.id.fragment_attender_register_linear_layout)
+    private LinearLayout fragment_attender_register_linear_layout;
+    @ViewInject(R.id.fragment_attender_register_surveillance_photo_placeholder_image)
+    private ImageView fragment_attender_register_surveillance_photo_placeholder_image;
+    @ViewInject(R.id.fragment_attender_register_upload_custom_photo_placeholder_image)
+    private ImageView fragment_attender_register_upload_custom_photo_placeholder_image;
+    @ViewInject(R.id.fragment_attender_register_id_card_photo_placeholder_image)
+    private ImageView fragment_attender_register_id_card_photo_placeholder_image;
+    @ViewInject(R.id.fragment_attender_register_surveillance_photo_placeholder_text_view)
+    private TextView fragment_attender_register_surveillance_photo_placeholder_text_view;
+    @ViewInject(R.id.fragment_attender_register_upload_custom_photo_placeholder_text_view)
+    private TextView fragment_attender_register_upload_custom_photo_placeholder_text_view;
+    @ViewInject(R.id.fragment_attender_register_id_card_photo_placeholder_text_view)
+    private TextView fragment_attender_register_id_card_photo_placeholder_text_view;
+
+    private static final int fragment_attender_register_surveillance_photo_ = 1;
+    private static final int fragment_attender_register_upload_custom_photo_ = 2;
+    private static final int fragment_attender_register_id_card_photo_ = 3;
+
+    private Bitmap fragment_attender_register_surveillance_photo_img;
+    private Bitmap fragment_attender_register_upload_custom_photo_img;
+    private Bitmap fragment_attender_register_id_card_photo_img;
+
+    private SurveillanceQueryItem surveillanceQueryItem_selectPhoto;
+    private SurveillanceQueryItem surveillanceQueryItem_uploadPhoto;
+
+    public static long selectedSurveillancePhotoId = -1;
+    public static long selectedCustomPhotoId = -1;
+
+    private File idCardImageCaptureFile = null;
+
+    private IdCardReaderThread idCardReaderThread = null;
+
+    private String idCardHeadPath = "";
+
+    private static AttenderRegisterFragment instance = new AttenderRegisterFragment();
+
+    public static AttenderRegisterFragment getInstance() {
+        return instance;
+    }
+    @Override
+    protected int getLayoutId() {
+        return R.layout.fragment_attender_register;
+    }
+
+    @OnClick(R.id.fragment_attender_register_add)
+    public void fragment_attender_register_add_click(View view) {
+        resetForm();
+    }
+
+    @OnClick(R.id.fragment_attender_register_save)
+    public void fragment_attender_register_save_click(View v) {
+        RequestParams params = new RequestParams();
+
+        String name = fragment_attender_register_name.getValue();
+        if (name.trim().length() <= 0) {
+            Toast.makeText(MainActivity.getInstance(), "濮撳悕涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
+            fragment_attender_register_name.requestFocus();
+            return;
+        }
+
+        params.addBodyParameter(Register.FieldNames.username, name);
+        params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(fragment_attender_register_gender.getValue()));
+        params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(fragment_attender_register_id_class.getValue()));
+        params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(fragment_attender_register_post.getValue()));
+        params.addBodyParameter(Register.FieldNames.identifyNum, fragment_attender_register_id_num.getValue());
+        params.addBodyParameter(Register.FieldNames.birthday, fragment_attender_register_department.getValue());
+        params.addBodyParameter(Register.FieldNames.remark, fragment_attender_register_remark.getValue());
+
+        if (surveillanceQueryItem_selectPhoto != null) {
+            params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth());
+            params.addBodyParameter("height", surveillanceQueryItem_selectPhoto.getHeight());
+            fragment_attender_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap();
+
+            NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg();
+            byte[] imageBytes = new byte[nativeImg.size];
+            for (int i = 0; i < nativeImg.size; i++) {
+                imageBytes[i] = nativeImg.image[i];
+            }
+            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", new byte[]{}));
+        }
+
+        if (fragment_attender_register_surveillance_photo_img != null) {
+            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            fragment_attender_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
+            byte[] imageBytes = byteArrayOutputStream.toByteArray();
+
+            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", new byte[]{}));
+        }
+
+        if (fragment_attender_register_upload_custom_photo_img != null) {
+            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            fragment_attender_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
+            byte[] imageBytes = byteArrayOutputStream.toByteArray();
+
+            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", new byte[]{}));
+        }
+
+        if (fragment_attender_register_id_card_photo_img != null) {
+            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            fragment_attender_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
+            byte[] imageBytes = byteArrayOutputStream.toByteArray();
+
+            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", new byte[]{}));
+        }
+        RegisterMng.getInstance().add(params, idCardHeadPath);
+    }
+
+    public void set_fragment_attender_register_surveillance_photo(SurveillanceQueryItem item) {
+        surveillanceQueryItem_selectPhoto = item;
+        fragment_attender_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
+                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+        fragment_attender_register_surveillance_photo_img = item.getBitmap();
+        fragment_attender_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
+        fragment_attender_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+    }
+
+    public void set_fragment_attender_register_upload_custom_photo(SurveillanceQueryItem item) {
+        surveillanceQueryItem_uploadPhoto = item;
+        fragment_attender_register_upload_custom_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
+                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+        fragment_attender_register_upload_custom_photo_img = item.getBitmap();
+
+        fragment_attender_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
+        fragment_attender_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == fragment_attender_register_surveillance_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
+            Uri uri = data.getData();
+            try {
+                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
+                fragment_attender_register_surveillance_photo.setImageBitmap(bitmap);
+                fragment_attender_register_surveillance_photo_img = bitmap;
+
+                fragment_attender_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                fragment_attender_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        if (requestCode == fragment_attender_register_upload_custom_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
+            Uri uri = data.getData();
+            try {
+                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
+                fragment_attender_register_upload_custom_photo.setImageBitmap(bitmap);
+
+                fragment_attender_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                fragment_attender_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+
+                List<SurveillanceQueryItem> bitmapList = new ArrayList<>();
+                SurveillanceQueryItem item = new SurveillanceQueryItem();
+                item.setWidth(bitmap.getWidth()+"");
+                item.setHeight(bitmap.getHeight()+"");
+                item.setLocalUri(uri);
+
+                setSurveillanceQueryItem_selectPhoto(item);
+                bitmapList.add(item);
+                bitmapList.add(item);
+                bitmapList.add(item);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        if (requestCode == fragment_attender_register_id_card_photo_ && resultCode == Activity.RESULT_OK) {
+
+            try {
+                if (data != null && data.getData() != null) {
+                    Uri uri = data.getData();
+                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
+                    fragment_attender_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
+                            (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+                    fragment_attender_register_id_card_photo_img = bitmap;
+                    MainActivity.getInstance().getContentResolver().delete(uri, null, null);
+
+                    fragment_attender_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                    fragment_attender_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+                } else if (idCardImageCaptureFile != null){
+                    if (idCardImageCaptureFile.exists()) {
+                        BitmapFactory.Options options = new BitmapFactory.Options();
+                        options.inJustDecodeBounds = true;
+                        BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
+                        int width = options.outWidth;
+                        int height = options.outHeight;
+                        WindowManager wm = (WindowManager) MainActivity.getInstance().getSystemService(Context.WINDOW_SERVICE);
+                        int screenWidth = wm.getDefaultDisplay().getWidth();
+                        int screenHeight = wm.getDefaultDisplay().getHeight();
+                        int dx = width / screenWidth;
+                        int dy = height / screenHeight;
+                        int scale = 1;
+                        if (dx > dy && dy >= 1) {
+                            scale = dx;
+                        }
+                        if (dy > dx && dx >= 1) {
+                            scale = dy;
+                        }
+                        options.inSampleSize = scale;
+                        options.inJustDecodeBounds = false;
+                        Bitmap bitmap = BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
+
+                        fragment_attender_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
+                                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+                        fragment_attender_register_id_card_photo_img = bitmap;
+                        MainActivity.getInstance().getContentResolver().delete(Uri.fromFile(idCardImageCaptureFile), null, null);
+
+                        fragment_attender_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                        fragment_attender_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+                        idCardImageCaptureFile = null;
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public void resetForm() {
+        selectedCustomPhotoId = -1;
+        selectedSurveillancePhotoId = -1;
+
+        idCardHeadPath = "";
+
+        fragment_attender_register_name.setValue("寰愪慨婧�"+Math.random());
+        fragment_attender_register_id_num.setValue("36041419292222222");
+        fragment_attender_register_department.setValue("1985-08-12");
+        fragment_attender_register_remark.setValue("澶囨敞");
+
+        fragment_attender_register_name.setValue("");
+        fragment_attender_register_id_num.setValue("");
+        fragment_attender_register_department.setValue("");
+
+        fragment_attender_register_gender.setValue("鐢�");
+        fragment_attender_register_id_class.setValue("韬唤璇�");
+        fragment_attender_register_post.setValue("涓浗");
+        fragment_attender_register_surveillance_photo_img = null;
+        fragment_attender_register_upload_custom_photo_img = null;
+        fragment_attender_register_id_card_photo_img = null;
+        fragment_attender_register_surveillance_photo.setImageBitmap(null);
+        fragment_attender_register_upload_custom_photo.setImageBitmap(null);
+        fragment_attender_register_id_card_photo.setImageBitmap(null);
+        fragment_attender_register_surveillance_photo_placeholder_image.setVisibility(View.VISIBLE);
+        fragment_attender_register_surveillance_photo_placeholder_text_view.setVisibility(View.VISIBLE);
+        fragment_attender_register_upload_custom_photo_placeholder_image.setVisibility(View.VISIBLE);
+        fragment_attender_register_upload_custom_photo_placeholder_text_view.setVisibility(View.VISIBLE);
+        fragment_attender_register_id_card_photo_placeholder_image.setVisibility(View.VISIBLE);
+        fragment_attender_register_id_card_photo_placeholder_text_view.setVisibility(View.VISIBLE);
+        this.surveillanceQueryItem_selectPhoto = null;
+        this.surveillanceQueryItem_uploadPhoto = null;
+    }
+
+    //@OnClick(R.id.fragment_attender_register_country)
+    public void fragment_attender_register_country_click(View view) {
+        new CountryDialog(fragment_attender_register_linear_layout, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_attender_register_post.setValue(value);
+            }
+        },fragment_attender_register_post.getValue());
+    }
+
+    //@OnClick(R.id.fragment_attender_register_gender)
+    public void fragment_attender_register_gender_click(View view) {
+        new SelectDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.GENDER, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_attender_register_gender.setValue(value);
+            }
+        }, fragment_attender_register_gender.getValue());
+    }
+
+    //@OnClick(R.id.fragment_attender_register_birthday)
+    public void fragment_attender_register_birthday_click(View view) {
+        String birthdayStr = fragment_attender_register_department.getValue();
+        Date birthday = new Date();
+        if (birthdayStr != null && !"".equals(birthdayStr)) {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            try {
+                birthday = sdf.parse(birthdayStr);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        new DateSelectDialog(
+                new OkClickedListener(){
+                    public void onSelected(String value) {
+                        fragment_attender_register_department.setValue(value);
+                    }
+                }, birthday);
+    }
+
+    //@OnClick(R.id.fragment_attender_register_id_class)
+    public void fragment_attender_register_id_class_click(View view) {
+        new SelectDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_attender_register_id_class.setValue(value);
+            }
+        }, fragment_attender_register_id_class.getValue());
+    }
+
+    @OnClick(R.id.fragment_attender_register_back)
+    public void fragment_attender_register_back_click(View view) {
+        MainActivity.selectPage(0);
+    }
+
+    @OnClick(R.id.fragment_attender_register_surveillance_photo)
+    public void fragment_attender_register_surveillance_photo_click(View view) {
+        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.SELECT_PHOTO;
+        new SurveillancePhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+            public void onSelected(String value) {
+            }
+        }, selectedSurveillancePhotoId);
+    }
+
+    @OnClick(R.id.fragment_attender_register_upload_custom_photo)
+    public void fragment_attender_register_upload_custom_photo_click(View view) {
+        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.UPLOAD_PHOTO;
+        new SurveillancePhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+            public void onSelected(String value) {
+            }
+        }, selectedCustomPhotoId);
+    }
+
+    @OnClick(R.id.fragment_attender_register_id_card_photo)
+    public void fragment_attender_register_id_card_photo_click(View view) {
+        Intent intent = new Intent();
+        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
+        idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");
+        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(idCardImageCaptureFile));
+        startActivityForResult(intent, fragment_attender_register_id_card_photo_);
+    }
+
+    @Override
+    public void onClick(View v) {}
+
+    public void setRegisterInfo(CheckInQueryItem item) {
+        fragment_attender_register_surveillance_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE + item.getSurveillancePhoto()));
+    }
+
+    public ImageView get_fragment_attender_register_choose_photo() {
+        return fragment_attender_register_surveillance_photo;
+    }
+
+    public void setChoosePhoto(Bitmap bitmap) {
+        fragment_attender_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
+                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+        fragment_attender_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+        fragment_attender_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
+    }
+
+    public void setSurveillanceQueryItem_selectPhoto(SurveillanceQueryItem item) {
+        this.surveillanceQueryItem_selectPhoto = item;
+    }
+
+    @Override
+    protected void initData() {
+        //resetForm();
+        if (CommonVariables.ID_CARD) {
+            idCardReaderThread = new IdCardReaderThread();
+            idCardReaderThread.start();
+        }
+    }
+
+    public void fillFormWithIdCard(IdCard idCard) {
+        try {
+            fragment_attender_register_name.setValue(idCard.getName());
+            fragment_attender_register_id_num.setValue(idCard.getCardNumber());
+
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+
+            fragment_attender_register_department.setValue(sdf1.format(sdf.parse(idCard.getBirthday())));
+            fragment_attender_register_gender.setValue(idCard.getGender());
+            fragment_attender_register_id_class.setValue("韬唤璇�");
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
+            Bitmap bitmap = BitmapFactory.decodeFile(idCard.getHeadPath(), options);
+            fragment_attender_register_id_card_photo.setImageBitmap(bitmap);
+            fragment_attender_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
+            fragment_attender_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+            idCardHeadPath = idCard.getHeadPath();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private boolean registerFragmentVisible = false;
+
+    @Override
+    public void setMenuVisibility(boolean menuVisible) {
+        super.setMenuVisibility(menuVisible);
+        registerFragmentVisible = menuVisible;
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
deleted file mode 100644
index e5466e4..0000000
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
+++ /dev/null
@@ -1,551 +0,0 @@
-package cn.com.basic.face.fragment;
-
-import android.app.Activity;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Environment;
-import android.provider.MediaStore;
-import android.util.Base64;
-import android.util.DisplayMetrics;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.bit.rfid.RFIDReader;
-import com.bit.rfid.ReaderExtra;
-import com.bsk.zhangbo.demoforbsk.R;
-
-import cn.com.basic.face.adapter.SurveillanceFragment;
-import cn.com.basic.face.base.BaseApplication;
-import cn.com.basic.face.base.BaseFragment;
-import cn.com.basic.face.base.PictureTaker;
-import cn.com.basic.face.dialog.SurveillancePhotoDialog;
-import cn.com.basic.face.discern.common.CommonVariables;
-import cn.com.basic.face.discern.common.ResultBean;
-import cn.com.basic.face.discern.entity.Register;
-import cn.com.basic.face.discern.query.item.CheckInQueryItem;
-import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
-import cn.com.basic.face.service.DictionaryMng;
-import cn.com.basic.face.service.RegisterMng;
-import cn.com.basic.face.service.SurveillanceMng;
-import cn.com.basic.face.util.BitmapUtil;
-import cn.com.basic.face.util.Constant;
-import cn.com.basic.face.util.FileUtil;
-import static cn.com.basic.face.util.FileUtil.*;
-
-import cn.com.basic.face.util.IdCard;
-import cn.com.basic.face.util.IdCardReaderThread;
-import cn.com.basic.face.util.NativeImg;
-import cn.com.basic.face.util.OkClickedListener;
-
-import cn.com.basic.face.util.AppApi;
-import cn.com.basic.face.dialog.DateSelectDialog;
-import cn.com.basic.face.dialog.CountryDialog;
-import cn.com.basic.face.util.PostData;
-import cn.com.basic.face.util.Uploader;
-import cn.com.basic.face.widget.register.RegisterRightFieldLabelView;
-import cn.com.basic.face.widget.register.RegisterRightFieldTextView;
-import cn.com.basic.face.dialog.SelectDialog;
-
-import com.ivsign.android.IDCReader.IDCReaderSDK;
-import com.lidroid.xutils.view.annotation.ViewInject;
-import com.lidroid.xutils.view.annotation.event.OnClick;
-
-import org.xutils.http.RequestParams;
-
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.io.Reader;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import cn.com.basic.face.base.MainActivity;
-
-public class RegisterFragment extends BaseFragment implements View.OnClickListener{
-
-    @ViewInject(R.id.fragment_register_name)
-    private RegisterRightFieldTextView fragment_register_name;
-    @ViewInject(R.id.fragment_register_gender)
-    private RegisterRightFieldLabelView fragment_register_gender;
-    @ViewInject(R.id.fragment_register_country)
-    private RegisterRightFieldLabelView fragment_register_country;
-    @ViewInject(R.id.fragment_register_birthday)
-    private RegisterRightFieldLabelView fragment_register_birthday;
-    @ViewInject(R.id.fragment_register_visitor_class)
-    private RegisterRightFieldLabelView fragment_register_visitor_class;
-    @ViewInject(R.id.fragment_register_phone)
-    private RegisterRightFieldTextView fragment_register_phone;
-    @ViewInject(R.id.fragment_register_id_class)
-    private RegisterRightFieldLabelView fragment_register_id_class;
-    @ViewInject(R.id.fragment_register_id_num)
-    private RegisterRightFieldTextView fragment_register_id_num;
-    @ViewInject(R.id.fragment_register_company)
-    private RegisterRightFieldTextView fragment_register_company;
-    @ViewInject(R.id.fragment_register_remark)
-    private RegisterRightFieldTextView fragment_register_remark;
-    @ViewInject(R.id.fragment_register_surveillance_photo)
-    private ImageView fragment_register_surveillance_photo;
-    @ViewInject(R.id.fragment_register_upload_custom_photo)
-    private ImageView fragment_register_upload_custom_photo;
-    @ViewInject(R.id.fragment_register_id_card_photo)
-    private ImageView fragment_register_id_card_photo;
-    @ViewInject(R.id.fragment_register_linear_layout)
-    private LinearLayout fragment_register_linear_layout;
-    @ViewInject(R.id.fragment_register_surveillance_photo_placeholder_image)
-    private ImageView fragment_register_surveillance_photo_placeholder_image;
-    @ViewInject(R.id.fragment_register_upload_custom_photo_placeholder_image)
-    private ImageView fragment_register_upload_custom_photo_placeholder_image;
-    @ViewInject(R.id.fragment_register_id_card_photo_placeholder_image)
-    private ImageView fragment_register_id_card_photo_placeholder_image;
-    @ViewInject(R.id.fragment_register_surveillance_photo_placeholder_text_view)
-    private TextView fragment_register_surveillance_photo_placeholder_text_view;
-    @ViewInject(R.id.fragment_register_upload_custom_photo_placeholder_text_view)
-    private TextView fragment_register_upload_custom_photo_placeholder_text_view;
-    @ViewInject(R.id.fragment_register_id_card_photo_placeholder_text_view)
-    private TextView fragment_register_id_card_photo_placeholder_text_view;
-
-    private static final int fragment_register_surveillance_photo_ = 1;
-    private static final int fragment_register_upload_custom_photo_ = 2;
-    private static final int fragment_register_id_card_photo_ = 3;
-
-    private Bitmap fragment_register_surveillance_photo_img;
-    private Bitmap fragment_register_upload_custom_photo_img;
-    private Bitmap fragment_register_id_card_photo_img;
-
-    private SurveillanceQueryItem surveillanceQueryItem_selectPhoto;
-    private SurveillanceQueryItem surveillanceQueryItem_uploadPhoto;
-
-    public static long selectedSurveillancePhotoId = -1;
-    public static long selectedCustomPhotoId = -1;
-
-    private File idCardImageCaptureFile = null;
-
-    private IdCardReaderThread idCardReaderThread = null;
-
-    private String idCardHeadPath = "";
-
-    private static RegisterFragment instance = new RegisterFragment();
-
-    public static RegisterFragment getInstance() {
-        return instance;
-    }
-    @Override
-    protected int getLayoutId() {
-        return R.layout.fragment_register;
-    }
-
-    @OnClick(R.id.fragment_register_add)
-    public void fragment_register_add_click(View view) {
-        resetForm();
-    }
-
-    @OnClick(R.id.fragment_register_save)
-    public void fragment_register_save_click(View v) {
-        RequestParams params = new RequestParams();
-
-        String name = fragment_register_name.getValue();
-        if (name.trim().length() <= 0) {
-            Toast.makeText(MainActivity.getInstance(), "濮撳悕涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
-            fragment_register_name.requestFocus();
-            return;
-        }
-        String phone = fragment_register_phone.getValue();
-        if (phone.trim().length() <= 0) {
-            Toast.makeText(MainActivity.getInstance(), "鐢佃瘽涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
-            fragment_register_phone.requestFocus();
-            return;
-        }
-        String company = fragment_register_company.getValue();
-        if (company.trim().length() <= 0) {
-            Toast.makeText(MainActivity.getInstance(), "鍏徃鍚嶇О涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
-            fragment_register_company.requestFocus();
-            return;
-        }
-        String visitor_type = fragment_register_visitor_class.getValue();
-        if (visitor_type.trim().length() <= 0) {
-            Toast.makeText(MainActivity.getInstance(), "璁垮绫诲瀷涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
-            fragment_register_visitor_class.callOnClick();
-            return;
-        }
-
-        params.addBodyParameter(Register.FieldNames.username, name);
-        params.addBodyParameter(Register.FieldNames.mobilePhone, phone);
-        params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(fragment_register_gender.getValue()));
-        params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(fragment_register_id_class.getValue()));
-        params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(fragment_register_country.getValue()));
-        params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_type));
-        params.addBodyParameter(Register.FieldNames.identifyNum, fragment_register_id_num.getValue());
-        params.addBodyParameter(Register.FieldNames.companyId, company);
-        params.addBodyParameter(Register.FieldNames.birthday, fragment_register_birthday.getValue());
-        params.addBodyParameter(Register.FieldNames.remark, fragment_register_remark.getValue());
-
-        if (surveillanceQueryItem_selectPhoto != null) {
-            params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth());
-            params.addBodyParameter("height", surveillanceQueryItem_selectPhoto.getHeight());
-            fragment_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap();
-
-            NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg();
-            byte[] imageBytes = new byte[nativeImg.size];
-            for (int i = 0; i < nativeImg.size; i++) {
-                imageBytes[i] = nativeImg.image[i];
-            }
-            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", imageBytes));
-        } else {
-            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", new byte[]{}));
-        }
-
-        if (fragment_register_surveillance_photo_img != null) {
-            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-            fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
-            byte[] imageBytes = byteArrayOutputStream.toByteArray();
-
-            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", imageBytes));
-        } else {
-            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", new byte[]{}));
-        }
-
-        if (fragment_register_upload_custom_photo_img != null) {
-            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-            fragment_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
-            byte[] imageBytes = byteArrayOutputStream.toByteArray();
-
-            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", imageBytes));
-        } else {
-            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", new byte[]{}));
-        }
-
-        if (fragment_register_id_card_photo_img != null) {
-            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-            fragment_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
-            byte[] imageBytes = byteArrayOutputStream.toByteArray();
-
-            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", imageBytes));
-        } else {
-            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", new byte[]{}));
-        }
-        RegisterMng.getInstance().add(params, idCardHeadPath);
-    }
-
-    public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
-        surveillanceQueryItem_selectPhoto = item;
-        fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
-                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
-        fragment_register_surveillance_photo_img = item.getBitmap();
-        fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
-        fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-    }
-
-    public void set_fragment_register_upload_custom_photo(SurveillanceQueryItem item) {
-        surveillanceQueryItem_uploadPhoto = item;
-        fragment_register_upload_custom_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
-                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
-        fragment_register_upload_custom_photo_img = item.getBitmap();
-
-        fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
-        fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        if (requestCode == fragment_register_surveillance_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
-            Uri uri = data.getData();
-            try {
-                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
-                fragment_register_surveillance_photo.setImageBitmap(bitmap);
-                fragment_register_surveillance_photo_img = bitmap;
-
-                fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
-                fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        if (requestCode == fragment_register_upload_custom_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
-            Uri uri = data.getData();
-            try {
-                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
-                fragment_register_upload_custom_photo.setImageBitmap(bitmap);
-
-                fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
-                fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-
-                List<SurveillanceQueryItem> bitmapList = new ArrayList<>();
-                SurveillanceQueryItem item = new SurveillanceQueryItem();
-                item.setWidth(bitmap.getWidth()+"");
-                item.setHeight(bitmap.getHeight()+"");
-                item.setLocalUri(uri);
-
-                setSurveillanceQueryItem_selectPhoto(item);
-                bitmapList.add(item);
-                bitmapList.add(item);
-                bitmapList.add(item);
-
-                //SurveillanceMng.getInstance().addBitmap(bitmapList, null, 0, CommonVariables.Camera.IN);
-
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        if (requestCode == fragment_register_id_card_photo_ && resultCode == Activity.RESULT_OK) {
-
-            try {
-                if (data != null && data.getData() != null) {
-                    Uri uri = data.getData();
-                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
-                    fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
-                            (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
-                    fragment_register_id_card_photo_img = bitmap;
-                    MainActivity.getInstance().getContentResolver().delete(uri, null, null);
-
-                    fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
-                    fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-                } else if (idCardImageCaptureFile != null){
-                    if (idCardImageCaptureFile.exists()) {
-                        BitmapFactory.Options options = new BitmapFactory.Options();
-                        options.inJustDecodeBounds = true;
-                        BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
-                        int width = options.outWidth;
-                        int height = options.outHeight;
-                        WindowManager wm = (WindowManager) MainActivity.getInstance().getSystemService(Context.WINDOW_SERVICE);
-                        int screenWidth = wm.getDefaultDisplay().getWidth();
-                        int screenHeight = wm.getDefaultDisplay().getHeight();
-                        int dx = width / screenWidth;
-                        int dy = height / screenHeight;
-                        int scale = 1;
-                        if (dx > dy && dy >= 1) {
-                            scale = dx;
-                        }
-                        if (dy > dx && dx >= 1) {
-                            scale = dy;
-                        }
-                        options.inSampleSize = scale;
-                        options.inJustDecodeBounds = false;
-                        Bitmap bitmap = BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
-
-                        fragment_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
-                                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
-                        fragment_register_id_card_photo_img = bitmap;
-                        MainActivity.getInstance().getContentResolver().delete(Uri.fromFile(idCardImageCaptureFile), null, null);
-
-                        fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
-                        fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-                        idCardImageCaptureFile = null;
-                    }
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    public void resetForm() {
-        selectedCustomPhotoId = -1;
-        selectedSurveillancePhotoId = -1;
-
-        idCardHeadPath = "";
-
-        fragment_register_name.setValue("寰愪慨婧�"+Math.random());
-        fragment_register_phone.setValue("13691348767");
-        fragment_register_id_num.setValue("36041419292222222");
-        fragment_register_birthday.setValue("1985-08-12");
-        fragment_register_company.setValue("璐濇�濈");
-        fragment_register_remark.setValue("澶囨敞");
-
-        fragment_register_name.setValue("");
-        fragment_register_id_num.setValue("");
-        fragment_register_birthday.setValue("");
-
-        fragment_register_gender.setValue("鐢�");
-        fragment_register_id_class.setValue("韬唤璇�");
-        fragment_register_country.setValue("涓浗");
-        fragment_register_visitor_class.setValue("鏅�氳瀹�");
-        fragment_register_surveillance_photo_img = null;
-        fragment_register_upload_custom_photo_img = null;
-        fragment_register_id_card_photo_img = null;
-        fragment_register_surveillance_photo.setImageBitmap(null);
-        fragment_register_upload_custom_photo.setImageBitmap(null);
-        fragment_register_id_card_photo.setImageBitmap(null);
-        fragment_register_surveillance_photo_placeholder_image.setVisibility(View.VISIBLE);
-        fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.VISIBLE);
-        fragment_register_upload_custom_photo_placeholder_image.setVisibility(View.VISIBLE);
-        fragment_register_upload_custom_photo_placeholder_text_view.setVisibility(View.VISIBLE);
-        fragment_register_id_card_photo_placeholder_image.setVisibility(View.VISIBLE);
-        fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.VISIBLE);
-        this.surveillanceQueryItem_selectPhoto = null;
-        this.surveillanceQueryItem_uploadPhoto = null;
-    }
-
-    //@OnClick(R.id.fragment_register_country)
-    public void fragment_register_country_click(View view) {
-        new CountryDialog(fragment_register_linear_layout, new OkClickedListener() {
-            public void onSelected(String value) {
-                fragment_register_country.setValue(value);
-            }
-        },fragment_register_country.getValue());
-    }
-
-    //@OnClick(R.id.fragment_register_gender)
-    public void fragment_register_gender_click(View view) {
-        new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.GENDER, new OkClickedListener() {
-            public void onSelected(String value) {
-                fragment_register_gender.setValue(value);
-            }
-        }, fragment_register_gender.getValue());
-    }
-
-    //@OnClick(R.id.fragment_register_birthday)
-    public void fragment_register_birthday_click(View view) {
-        String birthdayStr = fragment_register_birthday.getValue();
-        Date birthday = new Date();
-        if (birthdayStr != null && !"".equals(birthdayStr)) {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-            try {
-                birthday = sdf.parse(birthdayStr);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-
-        new DateSelectDialog(
-                new OkClickedListener(){
-                    public void onSelected(String value) {
-                        fragment_register_birthday.setValue(value);
-                    }
-                }, birthday);
-    }
-
-    //@OnClick(R.id.fragment_register_visitor_class)
-    public void fragment_register_visitor_class_click(View view) {
-        new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.VISITOR_TYPE, new OkClickedListener() {
-            public void onSelected(String value) {
-                fragment_register_visitor_class.setValue(value);
-            }
-        }, fragment_register_visitor_class.getValue());
-    }
-
-    //@OnClick(R.id.fragment_register_id_class)
-    public void fragment_register_id_class_click(View view) {
-        new SelectDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
-            public void onSelected(String value) {
-                fragment_register_id_class.setValue(value);
-            }
-        }, fragment_register_id_class.getValue());
-    }
-
-    @OnClick(R.id.fragment_register_back)
-    public void fragment_register_back_click(View view) {
-        MainActivity.selectPage(0);
-    }
-
-    @OnClick(R.id.fragment_register_surveillance_photo)
-    public void fragment_register_surveillance_photo_click(View view) {
-        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.SELECT_PHOTO;
-        new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
-            public void onSelected(String value) {
-            }
-        }, selectedSurveillancePhotoId);
-    }
-
-    @OnClick(R.id.fragment_register_upload_custom_photo)
-    public void fragment_register_upload_custom_photo_click(View view) {
-        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.UPLOAD_PHOTO;
-        new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
-            public void onSelected(String value) {
-            }
-        }, selectedCustomPhotoId);
-    }
-
-    @OnClick(R.id.fragment_register_id_card_photo)
-    public void fragment_register_id_card_photo_click(View view) {
-        Intent intent = new Intent();
-        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
-        idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");
-        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(idCardImageCaptureFile));
-        startActivityForResult(intent, fragment_register_id_card_photo_);
-    }
-
-    @Override
-    public void onClick(View v) {}
-
-    public void setRegisterInfo(CheckInQueryItem item) {
-        fragment_register_surveillance_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE + item.getSurveillancePhoto()));
-    }
-
-    public ImageView get_fragment_register_choose_photo() {
-        return fragment_register_surveillance_photo;
-    }
-
-    public void setChoosePhoto(Bitmap bitmap) {
-        fragment_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
-                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
-        fragment_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-        fragment_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
-    }
-
-    public void setSurveillanceQueryItem_selectPhoto(SurveillanceQueryItem item) {
-        this.surveillanceQueryItem_selectPhoto = item;
-    }
-
-    @Override
-    protected void initData() {
-        resetForm();
-        idCardReaderThread = new IdCardReaderThread();
-        idCardReaderThread.start();
-    }
-
-    public void fillFormWithIdCard(IdCard idCard) {
-        try {
-            fragment_register_name.setValue(idCard.getName());
-            fragment_register_id_num.setValue(idCard.getCardNumber());
-
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
-
-            fragment_register_birthday.setValue(sdf1.format(sdf.parse(idCard.getBirthday())));
-            fragment_register_gender.setValue(idCard.getGender());
-            fragment_register_id_class.setValue("韬唤璇�");
-            BitmapFactory.Options options = new BitmapFactory.Options();
-            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
-            Bitmap bitmap = BitmapFactory.decodeFile(idCard.getHeadPath(), options);
-            fragment_register_id_card_photo.setImageBitmap(bitmap);
-            fragment_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
-            fragment_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
-            idCardHeadPath = idCard.getHeadPath();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private boolean registerFragmentVisible = false;
-
-    @Override
-    public void setMenuVisibility(boolean menuVisible) {
-        super.setMenuVisibility(menuVisible);
-        registerFragmentVisible = menuVisible;
-    }
-
-
-
-
-}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
index 7fb2382..871329f 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
@@ -11,6 +11,7 @@
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 import android.view.View;
+import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
@@ -69,6 +70,9 @@
     private RelativeLayout fragment_supervisory_exit_camera_relative_layout;
     @ViewInject(R.id.fragment_supervisory_enter_camera_relative_layout)
     private RelativeLayout fragment_supervisory_enter_camera_relative_layout;
+    @ViewInject(R.id.fragment_surveillance_bottom_linear_layout)
+    private LinearLayout fragment_surveillance_bottom_linear_layout;
+
 
     static boolean useNative = false;
 
@@ -169,7 +173,8 @@
         if (CommonVariables.FACE_SERVER) {
             fragment_supervisory_enter_camera_relative_layout.addView(MainActivity.getInstance().mPreview);
             fragment_supervisory_enter_camera_relative_layout.addView(MainActivity.getInstance().mDraw);
-
+            //fragment_supervisory_exit_camera_relative_layout.setVisibility(View.GONE);
+            //fragment_surveillance_bottom_linear_layout.setVisibility(View.GONE);
         }
         fragment_supervisory_enter_camera.getHolder().addCallback(new SurfaceHolder.Callback() {
             public void surfaceCreated(SurfaceHolder holder) {
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java
new file mode 100644
index 0000000..fdf02c2
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/VisitorRegisterFragment.java
@@ -0,0 +1,529 @@
+package cn.com.basic.face.fragment;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Environment;
+import android.provider.MediaStore;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.bsk.zhangbo.demoforbsk.R;
+
+import cn.com.basic.face.adapter.SurveillanceFragment;
+import cn.com.basic.face.base.BaseFragment;
+import cn.com.basic.face.dialog.SurveillancePhotoDialog;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.discern.entity.Register;
+import cn.com.basic.face.discern.query.item.CheckInQueryItem;
+import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
+import cn.com.basic.face.service.DictionaryMng;
+import cn.com.basic.face.service.RegisterMng;
+import cn.com.basic.face.util.BitmapUtil;
+import cn.com.basic.face.util.Constant;
+import cn.com.basic.face.util.FileUtil;
+
+import cn.com.basic.face.util.IdCard;
+import cn.com.basic.face.util.IdCardReaderThread;
+import cn.com.basic.face.util.NativeImg;
+import cn.com.basic.face.util.OkClickedListener;
+
+import cn.com.basic.face.util.AppApi;
+import cn.com.basic.face.dialog.DateSelectDialog;
+import cn.com.basic.face.dialog.CountryDialog;
+import cn.com.basic.face.widget.register.RegisterRightFieldLabelView;
+import cn.com.basic.face.widget.register.RegisterRightFieldTextView;
+import cn.com.basic.face.dialog.SelectDialog;
+
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.lidroid.xutils.view.annotation.event.OnClick;
+
+import org.xutils.http.RequestParams;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import cn.com.basic.face.base.MainActivity;
+
+public class VisitorRegisterFragment extends BaseFragment implements View.OnClickListener{
+
+    @ViewInject(R.id.fragment_visitor_register_name)
+    private RegisterRightFieldTextView fragment_visitor_register_name;
+    @ViewInject(R.id.fragment_visitor_register_gender)
+    private RegisterRightFieldLabelView fragment_visitor_register_gender;
+    @ViewInject(R.id.fragment_visitor_register_country)
+    private RegisterRightFieldLabelView fragment_visitor_register_country;
+    @ViewInject(R.id.fragment_visitor_register_birthday)
+    private RegisterRightFieldLabelView fragment_visitor_register_birthday;
+    @ViewInject(R.id.fragment_visitor_register_visitor_class)
+    private RegisterRightFieldLabelView fragment_visitor_register_visitor_class;
+    @ViewInject(R.id.fragment_visitor_register_phone)
+    private RegisterRightFieldTextView fragment_visitor_register_phone;
+    @ViewInject(R.id.fragment_visitor_register_id_class)
+    private RegisterRightFieldLabelView fragment_visitor_register_id_class;
+    @ViewInject(R.id.fragment_visitor_register_id_num)
+    private RegisterRightFieldTextView fragment_visitor_register_id_num;
+    @ViewInject(R.id.fragment_visitor_register_company)
+    private RegisterRightFieldTextView fragment_visitor_register_company;
+    @ViewInject(R.id.fragment_visitor_register_remark)
+    private RegisterRightFieldTextView fragment_visitor_register_remark;
+    @ViewInject(R.id.fragment_visitor_register_surveillance_photo)
+    private ImageView fragment_visitor_register_surveillance_photo;
+    @ViewInject(R.id.fragment_visitor_register_upload_custom_photo)
+    private ImageView fragment_visitor_register_upload_custom_photo;
+    @ViewInject(R.id.fragment_visitor_register_id_card_photo)
+    private ImageView fragment_visitor_register_id_card_photo;
+    @ViewInject(R.id.fragment_visitor_register_linear_layout)
+    private LinearLayout fragment_visitor_register_linear_layout;
+    @ViewInject(R.id.fragment_visitor_register_surveillance_photo_placeholder_image)
+    private ImageView fragment_visitor_register_surveillance_photo_placeholder_image;
+    @ViewInject(R.id.fragment_visitor_register_upload_custom_photo_placeholder_image)
+    private ImageView fragment_visitor_register_upload_custom_photo_placeholder_image;
+    @ViewInject(R.id.fragment_visitor_register_id_card_photo_placeholder_image)
+    private ImageView fragment_visitor_register_id_card_photo_placeholder_image;
+    @ViewInject(R.id.fragment_visitor_register_surveillance_photo_placeholder_text_view)
+    private TextView fragment_visitor_register_surveillance_photo_placeholder_text_view;
+    @ViewInject(R.id.fragment_visitor_register_upload_custom_photo_placeholder_text_view)
+    private TextView fragment_visitor_register_upload_custom_photo_placeholder_text_view;
+    @ViewInject(R.id.fragment_visitor_register_id_card_photo_placeholder_text_view)
+    private TextView fragment_visitor_register_id_card_photo_placeholder_text_view;
+
+    private static final int fragment_visitor_register_surveillance_photo_ = 1;
+    private static final int fragment_visitor_register_upload_custom_photo_ = 2;
+    private static final int fragment_visitor_register_id_card_photo_ = 3;
+
+    private Bitmap fragment_visitor_register_surveillance_photo_img;
+    private Bitmap fragment_visitor_register_upload_custom_photo_img;
+    private Bitmap fragment_visitor_register_id_card_photo_img;
+
+    private SurveillanceQueryItem surveillanceQueryItem_selectPhoto;
+    private SurveillanceQueryItem surveillanceQueryItem_uploadPhoto;
+
+    public static long selectedSurveillancePhotoId = -1;
+    public static long selectedCustomPhotoId = -1;
+
+    private File idCardImageCaptureFile = null;
+
+    private IdCardReaderThread idCardReaderThread = null;
+
+    private String idCardHeadPath = "";
+
+    private static VisitorRegisterFragment instance = new VisitorRegisterFragment();
+
+    public static VisitorRegisterFragment getInstance() {
+        return instance;
+    }
+    @Override
+    protected int getLayoutId() {
+        return R.layout.fragment_visitor_register;
+    }
+
+    @OnClick(R.id.fragment_visitor_register_add)
+    public void fragment_visitor_register_add_click(View view) {
+        resetForm();
+    }
+
+    @OnClick(R.id.fragment_visitor_register_save)
+    public void fragment_visitor_register_save_click(View v) {
+        RequestParams params = new RequestParams();
+
+        String name = fragment_visitor_register_name.getValue();
+        if (name.trim().length() <= 0) {
+            Toast.makeText(MainActivity.getInstance(), "濮撳悕涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
+            fragment_visitor_register_name.requestFocus();
+            return;
+        }
+        String phone = fragment_visitor_register_phone.getValue();
+        if (phone.trim().length() <= 0) {
+            Toast.makeText(MainActivity.getInstance(), "鐢佃瘽涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
+            fragment_visitor_register_phone.requestFocus();
+            return;
+        }
+        String company = fragment_visitor_register_company.getValue();
+        if (company.trim().length() <= 0) {
+            Toast.makeText(MainActivity.getInstance(), "鍏徃鍚嶇О涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
+            fragment_visitor_register_company.requestFocus();
+            return;
+        }
+        String visitor_type = fragment_visitor_register_visitor_class.getValue();
+        if (visitor_type.trim().length() <= 0) {
+            Toast.makeText(MainActivity.getInstance(), "璁垮绫诲瀷涓嶈兘涓虹┖", Toast.LENGTH_SHORT).show();
+            fragment_visitor_register_visitor_class.callOnClick();
+            return;
+        }
+
+        params.addBodyParameter(Register.FieldNames.username, name);
+        params.addBodyParameter(Register.FieldNames.mobilePhone, phone);
+        params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(fragment_visitor_register_gender.getValue()));
+        params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(fragment_visitor_register_id_class.getValue()));
+        params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(fragment_visitor_register_country.getValue()));
+        params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_type));
+        params.addBodyParameter(Register.FieldNames.identifyNum, fragment_visitor_register_id_num.getValue());
+        params.addBodyParameter(Register.FieldNames.companyId, company);
+        params.addBodyParameter(Register.FieldNames.birthday, fragment_visitor_register_birthday.getValue());
+        params.addBodyParameter(Register.FieldNames.remark, fragment_visitor_register_remark.getValue());
+
+        if (surveillanceQueryItem_selectPhoto != null) {
+            params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth());
+            params.addBodyParameter("height", surveillanceQueryItem_selectPhoto.getHeight());
+            fragment_visitor_register_surveillance_photo_img = surveillanceQueryItem_selectPhoto.getBitmap();
+
+            NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg();
+            byte[] imageBytes = new byte[nativeImg.size];
+            for (int i = 0; i < nativeImg.size; i++) {
+                imageBytes[i] = nativeImg.image[i];
+            }
+            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto", new byte[]{}));
+        }
+
+        if (fragment_visitor_register_surveillance_photo_img != null) {
+            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            fragment_visitor_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
+            byte[] imageBytes = byteArrayOutputStream.toByteArray();
+
+            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto", new byte[]{}));
+        }
+
+        if (fragment_visitor_register_upload_custom_photo_img != null) {
+            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            fragment_visitor_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
+            byte[] imageBytes = byteArrayOutputStream.toByteArray();
+
+            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto", new byte[]{}));
+        }
+
+        if (fragment_visitor_register_id_card_photo_img != null) {
+            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            fragment_visitor_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
+            byte[] imageBytes = byteArrayOutputStream.toByteArray();
+
+            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto", new byte[]{}));
+        }
+        RegisterMng.getInstance().add(params, idCardHeadPath);
+    }
+
+    public void set_fragment_visitor_register_surveillance_photo(SurveillanceQueryItem item) {
+        surveillanceQueryItem_selectPhoto = item;
+        fragment_visitor_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
+                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+        fragment_visitor_register_surveillance_photo_img = item.getBitmap();
+        fragment_visitor_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
+        fragment_visitor_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+    }
+
+    public void set_fragment_visitor_register_upload_custom_photo(SurveillanceQueryItem item) {
+        surveillanceQueryItem_uploadPhoto = item;
+        fragment_visitor_register_upload_custom_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(item.getBitmap(),
+                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+        fragment_visitor_register_upload_custom_photo_img = item.getBitmap();
+
+        fragment_visitor_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
+        fragment_visitor_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == fragment_visitor_register_surveillance_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
+            Uri uri = data.getData();
+            try {
+                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
+                fragment_visitor_register_surveillance_photo.setImageBitmap(bitmap);
+                fragment_visitor_register_surveillance_photo_img = bitmap;
+
+                fragment_visitor_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                fragment_visitor_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        if (requestCode == fragment_visitor_register_upload_custom_photo_ && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
+            Uri uri = data.getData();
+            try {
+                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
+                fragment_visitor_register_upload_custom_photo.setImageBitmap(bitmap);
+
+                fragment_visitor_register_upload_custom_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                fragment_visitor_register_upload_custom_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+
+                List<SurveillanceQueryItem> bitmapList = new ArrayList<>();
+                SurveillanceQueryItem item = new SurveillanceQueryItem();
+                item.setWidth(bitmap.getWidth()+"");
+                item.setHeight(bitmap.getHeight()+"");
+                item.setLocalUri(uri);
+
+                setSurveillanceQueryItem_selectPhoto(item);
+                bitmapList.add(item);
+                bitmapList.add(item);
+                bitmapList.add(item);
+
+                //SurveillanceMng.getInstance().addBitmap(bitmapList, null, 0, CommonVariables.Camera.IN);
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        if (requestCode == fragment_visitor_register_id_card_photo_ && resultCode == Activity.RESULT_OK) {
+
+            try {
+                if (data != null && data.getData() != null) {
+                    Uri uri = data.getData();
+                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
+                    fragment_visitor_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
+                            (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+                    fragment_visitor_register_id_card_photo_img = bitmap;
+                    MainActivity.getInstance().getContentResolver().delete(uri, null, null);
+
+                    fragment_visitor_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                    fragment_visitor_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+                } else if (idCardImageCaptureFile != null){
+                    if (idCardImageCaptureFile.exists()) {
+                        BitmapFactory.Options options = new BitmapFactory.Options();
+                        options.inJustDecodeBounds = true;
+                        BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
+                        int width = options.outWidth;
+                        int height = options.outHeight;
+                        WindowManager wm = (WindowManager) MainActivity.getInstance().getSystemService(Context.WINDOW_SERVICE);
+                        int screenWidth = wm.getDefaultDisplay().getWidth();
+                        int screenHeight = wm.getDefaultDisplay().getHeight();
+                        int dx = width / screenWidth;
+                        int dy = height / screenHeight;
+                        int scale = 1;
+                        if (dx > dy && dy >= 1) {
+                            scale = dx;
+                        }
+                        if (dy > dx && dx >= 1) {
+                            scale = dy;
+                        }
+                        options.inSampleSize = scale;
+                        options.inJustDecodeBounds = false;
+                        Bitmap bitmap = BitmapFactory.decodeFile(idCardImageCaptureFile.getAbsolutePath(), options);
+
+                        fragment_visitor_register_id_card_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
+                                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+                        fragment_visitor_register_id_card_photo_img = bitmap;
+                        MainActivity.getInstance().getContentResolver().delete(Uri.fromFile(idCardImageCaptureFile), null, null);
+
+                        fragment_visitor_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
+                        fragment_visitor_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+                        idCardImageCaptureFile = null;
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public void resetForm() {
+        selectedCustomPhotoId = -1;
+        selectedSurveillancePhotoId = -1;
+
+        idCardHeadPath = "";
+
+        fragment_visitor_register_name.setValue("寰愪慨婧�"+Math.random());
+        fragment_visitor_register_phone.setValue("13691348767");
+        fragment_visitor_register_id_num.setValue("36041419292222222");
+        fragment_visitor_register_birthday.setValue("1985-08-12");
+        fragment_visitor_register_company.setValue("璐濇�濈");
+        fragment_visitor_register_remark.setValue("澶囨敞");
+
+        fragment_visitor_register_name.setValue("");
+        fragment_visitor_register_id_num.setValue("");
+        fragment_visitor_register_birthday.setValue("");
+
+        fragment_visitor_register_gender.setValue("鐢�");
+        fragment_visitor_register_id_class.setValue("韬唤璇�");
+        fragment_visitor_register_country.setValue("涓浗");
+        fragment_visitor_register_visitor_class.setValue("鏅�氳瀹�");
+        fragment_visitor_register_surveillance_photo_img = null;
+        fragment_visitor_register_upload_custom_photo_img = null;
+        fragment_visitor_register_id_card_photo_img = null;
+        fragment_visitor_register_surveillance_photo.setImageBitmap(null);
+        fragment_visitor_register_upload_custom_photo.setImageBitmap(null);
+        fragment_visitor_register_id_card_photo.setImageBitmap(null);
+        fragment_visitor_register_surveillance_photo_placeholder_image.setVisibility(View.VISIBLE);
+        fragment_visitor_register_surveillance_photo_placeholder_text_view.setVisibility(View.VISIBLE);
+        fragment_visitor_register_upload_custom_photo_placeholder_image.setVisibility(View.VISIBLE);
+        fragment_visitor_register_upload_custom_photo_placeholder_text_view.setVisibility(View.VISIBLE);
+        fragment_visitor_register_id_card_photo_placeholder_image.setVisibility(View.VISIBLE);
+        fragment_visitor_register_id_card_photo_placeholder_text_view.setVisibility(View.VISIBLE);
+        this.surveillanceQueryItem_selectPhoto = null;
+        this.surveillanceQueryItem_uploadPhoto = null;
+    }
+
+    //@OnClick(R.id.fragment_visitor_register_country)
+    public void fragment_visitor_register_country_click(View view) {
+        new CountryDialog(fragment_visitor_register_linear_layout, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_visitor_register_country.setValue(value);
+            }
+        },fragment_visitor_register_country.getValue());
+    }
+
+    //@OnClick(R.id.fragment_visitor_register_gender)
+    public void fragment_visitor_register_gender_click(View view) {
+        new SelectDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.GENDER, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_visitor_register_gender.setValue(value);
+            }
+        }, fragment_visitor_register_gender.getValue());
+    }
+
+    //@OnClick(R.id.fragment_visitor_register_birthday)
+    public void fragment_visitor_register_birthday_click(View view) {
+        String birthdayStr = fragment_visitor_register_birthday.getValue();
+        Date birthday = new Date();
+        if (birthdayStr != null && !"".equals(birthdayStr)) {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            try {
+                birthday = sdf.parse(birthdayStr);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
+        new DateSelectDialog(
+                new OkClickedListener(){
+                    public void onSelected(String value) {
+                        fragment_visitor_register_birthday.setValue(value);
+                    }
+                }, birthday);
+    }
+
+    //@OnClick(R.id.fragment_visitor_register_visitor_class)
+    public void fragment_visitor_register_visitor_class_click(View view) {
+        new SelectDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.VISITOR_TYPE, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_visitor_register_visitor_class.setValue(value);
+            }
+        }, fragment_visitor_register_visitor_class.getValue());
+    }
+
+    //@OnClick(R.id.fragment_visitor_register_id_class)
+    public void fragment_visitor_register_id_class_click(View view) {
+        new SelectDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+            public void onSelected(String value) {
+                fragment_visitor_register_id_class.setValue(value);
+            }
+        }, fragment_visitor_register_id_class.getValue());
+    }
+
+    @OnClick(R.id.fragment_visitor_register_back)
+    public void fragment_visitor_register_back_click(View view) {
+        MainActivity.selectPage(0);
+    }
+
+    @OnClick(R.id.fragment_visitor_register_surveillance_photo)
+    public void fragment_visitor_register_surveillance_photo_click(View view) {
+        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.SELECT_PHOTO;
+        new SurveillancePhotoDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+            public void onSelected(String value) {
+            }
+        }, selectedSurveillancePhotoId);
+    }
+
+    @OnClick(R.id.fragment_visitor_register_upload_custom_photo)
+    public void fragment_visitor_register_upload_custom_photo_click(View view) {
+        SurveillanceFragment.SurveillancePhotoSelectListViewAdapter.selectPhotoOrUploadPhoto = CommonVariables.SelectPhotoType.UPLOAD_PHOTO;
+        new SurveillancePhotoDialog(fragment_visitor_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
+            public void onSelected(String value) {
+            }
+        }, selectedCustomPhotoId);
+    }
+
+    @OnClick(R.id.fragment_visitor_register_id_card_photo)
+    public void fragment_visitor_register_id_card_photo_click(View view) {
+        Intent intent = new Intent();
+        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
+        idCardImageCaptureFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");
+        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(idCardImageCaptureFile));
+        startActivityForResult(intent, fragment_visitor_register_id_card_photo_);
+    }
+
+    @Override
+    public void onClick(View v) {}
+
+    public void setRegisterInfo(CheckInQueryItem item) {
+        fragment_visitor_register_surveillance_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE + item.getSurveillancePhoto()));
+    }
+
+    public ImageView get_fragment_visitor_register_choose_photo() {
+        return fragment_visitor_register_surveillance_photo;
+    }
+
+    public void setChoosePhoto(Bitmap bitmap) {
+        fragment_visitor_register_surveillance_photo.setImageBitmap(BitmapUtil.getRoundedCornerBitmap(bitmap,
+                (int)MainActivity.getInstance().getResources().getDimension(R.dimen.w10dp)));
+        fragment_visitor_register_surveillance_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+        fragment_visitor_register_surveillance_photo_placeholder_image.setVisibility(View.INVISIBLE);
+    }
+
+    public void setSurveillanceQueryItem_selectPhoto(SurveillanceQueryItem item) {
+        this.surveillanceQueryItem_selectPhoto = item;
+    }
+
+    @Override
+    protected void initData() {
+        resetForm();
+        if (CommonVariables.ID_CARD) {
+            idCardReaderThread = new IdCardReaderThread();
+            idCardReaderThread.start();
+        }
+    }
+
+    public void fillFormWithIdCard(IdCard idCard) {
+        try {
+            fragment_visitor_register_name.setValue(idCard.getName());
+            fragment_visitor_register_id_num.setValue(idCard.getCardNumber());
+
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+
+            fragment_visitor_register_birthday.setValue(sdf1.format(sdf.parse(idCard.getBirthday())));
+            fragment_visitor_register_gender.setValue(idCard.getGender());
+            fragment_visitor_register_id_class.setValue("韬唤璇�");
+            BitmapFactory.Options options = new BitmapFactory.Options();
+            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
+            Bitmap bitmap = BitmapFactory.decodeFile(idCard.getHeadPath(), options);
+            fragment_visitor_register_id_card_photo.setImageBitmap(bitmap);
+            fragment_visitor_register_id_card_photo_placeholder_image.setVisibility(View.INVISIBLE);
+            fragment_visitor_register_id_card_photo_placeholder_text_view.setVisibility(View.INVISIBLE);
+            idCardHeadPath = idCard.getHeadPath();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private boolean registerFragmentVisible = false;
+
+    @Override
+    public void setMenuVisibility(boolean menuVisible) {
+        super.setMenuVisibility(menuVisible);
+        registerFragmentVisible = menuVisible;
+    }
+
+
+
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java
index 849fbc4..db5cfdc 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/RegisterMng.java
@@ -3,8 +3,7 @@
 import android.widget.Toast;
 
 import cn.com.basic.face.base.BaseApplication;
-import cn.com.basic.face.discern.entity.Device;
-import cn.com.basic.face.fragment.RegisterFragment;
+import cn.com.basic.face.fragment.VisitorRegisterFragment;
 import cn.com.basic.face.util.AppApi;
 
 import org.xutils.http.RequestParams;
@@ -72,7 +71,7 @@
                 @Override
                 public void success() {
                     Toast.makeText(BaseApplication.getInstance(),"娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show();
-                    RegisterFragment.getInstance().resetForm();
+                    VisitorRegisterFragment.getInstance().resetForm();
                 }
             });
         }catch(Exception e) {
@@ -109,7 +108,7 @@
             x.http().post(params, new BaseCommonCallBack() {
                 @Override
                 public void success() {
-                    if (!RegisterFragment.getInstance().isVisible()) {
+                    if (!VisitorRegisterFragment.getInstance().isVisible()) {
                         return;
                     }
                     List<Double> percents = resultBean.getListBeanOfType(Double.class);
@@ -117,7 +116,7 @@
                         double percent = percents.get(0);
                         if (percent >= 70) {
                             Toast.makeText(BaseApplication.getInstance(),"璁よ瘉閫氳繃", Toast.LENGTH_SHORT).show();
-                            RegisterFragment.getInstance().fillFormWithIdCard(idCard);
+                            VisitorRegisterFragment.getInstance().fillFormWithIdCard(idCard);
                             return;
                         }
                         System.out.println("percent="+percent);
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
index 6b36aad..b03ea79 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
@@ -1,39 +1,19 @@
 package cn.com.basic.face.service;
 
-import android.os.AsyncTask;
-import android.util.Base64;
-import android.widget.Toast;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-
 import org.xutils.http.RequestParams;
 import org.xutils.x;
 
 import java.io.File;
 import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 import cn.com.basic.face.base.BaseApplication;
 import cn.com.basic.face.base.MainActivity;
 import cn.com.basic.face.discern.common.BaseCommonCallBack;
-import cn.com.basic.face.discern.common.CommonVariables;
-import cn.com.basic.face.discern.common.ResultBean;
-import cn.com.basic.face.discern.entity.Device;
 import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
-import cn.com.basic.face.fragment.RegisterFragment;
-import cn.com.basic.face.fragment.SurveillanceFragment;
 import cn.com.basic.face.util.AppApi;
-import cn.com.basic.face.util.Constant;
 import cn.com.basic.face.util.FileUtil;
-import cn.com.basic.face.util.PostData;
 import cn.com.basic.face.util.SurveillanceQueryItemUtil;
-import cn.com.basic.face.util.Uploader;
 
 public class SurveillanceMng {
 
@@ -102,7 +82,7 @@
                 @Override
                 public void success() {
                     try {
-                        SurveillanceQueryItemUtil.getInstance().addItems(resultBean.getListBeanOfType(SurveillanceQueryItem.class), bitmapList);
+                        SurveillanceQueryItemUtil.getInstance().addItems(resultBean.getListBeanOfType(SurveillanceQueryItem.class), bitmapList, cameraInOrOut);
                     } catch(Exception e) {
                         e.printStackTrace();
                     }
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java
index 7aa8d4b..1f718ad 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/AppApi.java
@@ -4,14 +4,17 @@
 	//public final static String IMAGE_URL_BASE = "http://192.168.1.137:8333/face/img/";
 	//public final static String BASE_URL = "http://192.168.1.137:8333/face/";
 
-	public final static String IMAGE_URL_BASE = "http://192.168.1.49:8888/";
+	public final static String IMAGE_URL_BASE = "http://192.168.1.65:8888/";
 	//public final static String BASE_URL = "http://192.168.1.51/face/";
 //	public final static String BASE_URL = "http://192.168.1.4:8333/face/";
-	public final static String BASE_URL = "http://192.168.1.77:8080/face/";
+	public final static String BASE_URL = "http://192.168.1.35:8080/face/";
 
-	//娉ㄥ唽娣诲姞
+	//璁垮娉ㄥ唽娣诲姞
 	public static final String REGISTER_ADD = "Register/o_add.do";
 
+	//鑰冨嫟娣诲姞
+	public static final String ATTENDER_REGISTER_ADD = "Register/o_add_attender.do";
+
 	//娉ㄥ唽韬唤璇佽璇�
 	public static final String REGISTER_ID_CARD_AUTH = "Register/v_id_card_auth.do";
 
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/IdCardReaderThread.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/IdCardReaderThread.java
index 487f896..28c9c4d 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/IdCardReaderThread.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/IdCardReaderThread.java
@@ -14,7 +14,7 @@
 
 import cn.com.basic.face.base.BaseApplication;
 import cn.com.basic.face.base.MainActivity;
-import cn.com.basic.face.fragment.RegisterFragment;
+import cn.com.basic.face.fragment.VisitorRegisterFragment;
 import cn.com.basic.face.service.RegisterMng;
 
 import static cn.com.basic.face.util.FileUtil.writeToFile;
@@ -28,7 +28,7 @@
             try{
                 Thread.sleep(2000);
                 try {
-                    if (!RegisterFragment.getInstance().isVisible()) {
+                    if (!VisitorRegisterFragment.getInstance().isVisible()) {
                         return;
                     }
 
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java
index c52e764..e90b449 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillanceQueryItemUtil.java
@@ -2,8 +2,10 @@
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import cn.com.basic.face.discern.common.CommonVariables;
@@ -26,19 +28,24 @@
     private static List<SurveillanceQueryItem> visitorTwoRows = new ArrayList<>();
     //绗竴琛屾樉绀虹鍒帮紝绗簩琛屾樉绀虹閫�
     private static List<SurveillanceQueryItem> attendanceTwoRows = new ArrayList<>();
-    //鏈敞鍐岀殑鍒楄〃, 閫夋嫨鏃剁敤
-    private static List<SurveillanceQueryItem> allUnregisterTwoRowsForSelect = new ArrayList();
+    //鏈敞鍐岀殑璁垮鍒楄〃, 閫夋嫨鏃剁敤
+    private static List<SurveillanceQueryItem> allUnregisterVisitorTwoRowsForSelect = new ArrayList();
+    //鏈敞鍐岀殑鑰冨嫟鍒楄〃, 閫夋嫨鏃剁敤
+    private static List<SurveillanceQueryItem> allUnregisterAttenderTwoRowsForSelect = new ArrayList();
 
-    public void addItems(List<SurveillanceQueryItem> returnItems, List<SurveillanceQueryItem> requestItems) {
+    public void addItems(List<SurveillanceQueryItem> returnItems, List<SurveillanceQueryItem> requestItems, String cameraInOrOut) {
         for ( int i = 0; i < returnItems.size(); i++) {
             SurveillanceQueryItem returnItem = returnItems.get(i);
             SurveillanceQueryItem requestItem = requestItems.get(i);
-            addItem(returnItem, requestItem);
+            addItem(returnItem, requestItem, cameraInOrOut);
         }
         removeTimeoutItemAndShow();
     }
 
-    public void addItem(SurveillanceQueryItem returnItem, SurveillanceQueryItem requestItem) {
+    public void addItem(SurveillanceQueryItem returnItem, SurveillanceQueryItem requestItem, String cameraInOrOut) {
+        if (!CommonVariables.FACE_SERVER) {
+            RtspFaceNative.setFaceLabel(Integer.parseInt(cameraInOrOut), requestItem.getStTrackId(), returnItem.getVisitorType());
+        }
         returnItem.setCreateTime(new Date());
         returnItem.setStTrackId(requestItem.getStTrackId());
         returnItem.setBitmap(requestItem.getBitmap());
@@ -67,15 +74,20 @@
     public List getAttendanceTwoRows() {
         attendanceTwoRows.clear();
         for (SurveillanceQueryItem item : allItems) {
-            if (item.getRegisterOrCheckIn() ==  CommonVariables.Surveillance.VISIT_ATTENDANCE_ITEM_TYPE) {
+            if (item.getRegisterOrCheckIn() ==  CommonVariables.Surveillance.VISIT_ATTENDANCE_IN ||
+                    item.getRegisterOrCheckIn() ==  CommonVariables.Surveillance.VISIT_ATTENDANCE_OUT
+                    ) {
                 attendanceTwoRows.add(item);
             }
         }
+        AttendentUtil.removeDuplicateAttendanceIn();
+        AttendentUtil.removeDuplicateAttendanceOut();
+        AttendentUtil.sortByRow();
         return attendanceTwoRows;
     }
 
-    public List getAllUnregisterTwoRowsForSelect(long selectedId) {
-        allUnregisterTwoRowsForSelect.clear();
+    public List getAllUnregisterVisitorTwoRowsForSelect(long selectedId) {
+        allUnregisterVisitorTwoRowsForSelect.clear();
         List<SurveillanceQueryItem> registerList = new ArrayList();
         int countPerRow = 9;
         for (SurveillanceQueryItem surveillanceQueryItem : allItems) {
@@ -113,8 +125,51 @@
             }
             items.add(item);
         }
-        allUnregisterTwoRowsForSelect.addAll(items);
-        return allUnregisterTwoRowsForSelect;
+        allUnregisterVisitorTwoRowsForSelect.addAll(items);
+        return allUnregisterVisitorTwoRowsForSelect;
+    }
+
+    public List getAllUnregisterAttenderTwoRowsForSelect(long selectedId) {
+        allUnregisterAttenderTwoRowsForSelect.clear();
+        List<SurveillanceQueryItem> registerList = new ArrayList();
+        int countPerRow = 9;
+        for (SurveillanceQueryItem surveillanceQueryItem : allItems) {
+            if (surveillanceQueryItem.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE) {
+                if (registerList.size() > countPerRow*2) {
+                    break;
+                }
+                if (surveillanceQueryItem.getIdForSelect() == selectedId) {
+                    surveillanceQueryItem.setSurveillancePhotoSelected(true);
+                } else {
+                    surveillanceQueryItem.setSurveillancePhotoSelected(false);
+                }
+                registerList.add(surveillanceQueryItem);
+            }
+        }
+
+        SurveillanceQueryItem item;
+        List items = new ArrayList();
+        int m = 0, n = 0;
+        for (int i = 0; i < countPerRow*2; i++) {
+            if (i % 2 == 0) {
+                if (m < registerList.size()) {
+                    item = registerList.get(m);
+                    m++;
+                } else {
+                    item = VisitorUtil.getBlankItem();
+                }
+            } else {
+                if (n < registerList.size() - countPerRow) {
+                    item = registerList.get(countPerRow+n);
+                    n++;
+                } else {
+                    item = VisitorUtil.getBlankItem();
+                }
+            }
+            items.add(item);
+        }
+        allUnregisterAttenderTwoRowsForSelect.addAll(items);
+        return allUnregisterAttenderTwoRowsForSelect;
     }
 
     public void removeTimeoutItemAndShow() {
@@ -230,6 +285,92 @@
 
     static class AttendentUtil {
 
+        public static void removeDuplicateAttendanceIn() {
+            Map<String, String> registerIdMap = new HashMap<>();
+            List itemsToRemove = new ArrayList();
+            for (SurveillanceQueryItem item : attendanceTwoRows) {
+                if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_ATTENDANCE_IN) {
+                    String registerId = item.getRegisterId();
+                    if (registerIdMap.containsKey(item.getRegisterId())) {
+                        itemsToRemove.add(item);
+                    } else {
+                        registerIdMap.put(registerId, registerId);
+                    }
+                }
+            }
+            attendanceTwoRows.removeAll(itemsToRemove);
+        }
+
+        public static void removeDuplicateAttendanceOut() {
+            Map<String, String> registerIdMap = new HashMap<>();
+            List itemsToRemove = new ArrayList();
+            for (SurveillanceQueryItem item : attendanceTwoRows) {
+                if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_ATTENDANCE_OUT) {
+                    String registerId = item.getRegisterId();
+                    if (registerIdMap.containsKey(item.getRegisterId())) {
+                        itemsToRemove.add(item);
+                    } else {
+                        registerIdMap.put(registerId, registerId);
+                    }
+                }
+            }
+            attendanceTwoRows.removeAll(itemsToRemove);
+        }
+
+        public static void sortByRow() {
+            List<SurveillanceQueryItem> attenderInList = new ArrayList<SurveillanceQueryItem>();
+            List<SurveillanceQueryItem> attenderOutList = new ArrayList<SurveillanceQueryItem>();
+            int i1 = 0, j = 0;
+            int maxAttenderIn = 50;
+            int maxAttenderOut = 50;
+            for (SurveillanceQueryItem item : attendanceTwoRows) {
+                if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_ATTENDANCE_IN) {
+                    if (i1 < maxAttenderIn) {
+                        attenderInList.add(item);
+                        i1++;
+                    }
+                }
+                if (item.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_ATTENDANCE_OUT) {
+                    if (j < maxAttenderOut) {
+                        attenderOutList.add(item);
+                        j++;
+                    }
+                }
+            }
+
+            int max = attenderInList.size() > attenderOutList.size() ? attenderInList.size() : attenderOutList.size();
+
+            List tempList = new ArrayList();
+
+            int m = 0, n = 0;
+            for (int i = 0; i < max * 2; i++) {
+                SurveillanceQueryItem item;
+                if (i % 2 == 0) {
+                    if (m < attenderInList.size()) {
+                        item = attenderInList.get(m);
+                    } else {
+                        item = getBlankItem();
+                    }
+                    m++;
+                } else {
+                    if (n < attenderOutList.size()) {
+                        item = attenderOutList.get(n);
+                    } else {
+                        item = getBlankItem();
+                    }
+                    n++;
+                }
+                tempList.add(item);
+            }
+            attendanceTwoRows.clear();
+            attendanceTwoRows.addAll(tempList);
+        }
+
+        public static SurveillanceQueryItem getBlankItem() {
+            SurveillanceQueryItem blankItem = new SurveillanceQueryItem();
+            blankItem.setRegisterOrCheckIn(CommonVariables.Surveillance.VISIT_ATTENDANCE_BLANK);
+            return blankItem;
+        }
     }
 
 }
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/register/RegisterRightFieldLabelView.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/register/RegisterRightFieldLabelView.java
index a88af3a..67cf543 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/register/RegisterRightFieldLabelView.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/register/RegisterRightFieldLabelView.java
@@ -3,10 +3,7 @@
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.util.AttributeSet;
-import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewGroup;
-import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
@@ -15,9 +12,7 @@
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.lidroid.xutils.view.annotation.event.OnClick;
 
-import cn.com.basic.face.base.MainActivity;
-import cn.com.basic.face.fragment.RegisterFragment;
-import cn.com.basic.face.util.WindowsUtil;
+import cn.com.basic.face.fragment.VisitorRegisterFragment;
 
 public class RegisterRightFieldLabelView extends LinearLayout {
 
@@ -84,19 +79,19 @@
     public void fragment_register_right_label_image_click(View view) {
         String label = fragment_register_right_label_label.getText().toString();
         if ("鎬у埆锛�".equals(label)) {
-            RegisterFragment.getInstance().fragment_register_gender_click(view);
+            VisitorRegisterFragment.getInstance().fragment_visitor_register_gender_click(view);
         }
         if ("璇佷欢绫诲瀷锛�".equals(label)) {
-            RegisterFragment.getInstance().fragment_register_id_class_click(view);
+            VisitorRegisterFragment.getInstance().fragment_visitor_register_id_class_click(view);
         }
         if ("鍥界睄锛�".equals(label)) {
-            RegisterFragment.getInstance().fragment_register_country_click(view);
+            VisitorRegisterFragment.getInstance().fragment_visitor_register_country_click(view);
         }
         if ("鍑虹敓鏃ユ湡锛�".equals(label)) {
-            RegisterFragment.getInstance().fragment_register_birthday_click(view);
+            VisitorRegisterFragment.getInstance().fragment_visitor_register_birthday_click(view);
         }
         if ("璁垮绫诲瀷锛�".equals(label)) {
-            RegisterFragment.getInstance().fragment_register_visitor_class_click(view);
+            VisitorRegisterFragment.getInstance().fragment_visitor_register_visitor_class_click(view);
         }
     }
 
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attendance_right.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attendance_right.xml
index 5acba48..dd2d416 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attendance_right.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attendance_right.xml
@@ -114,7 +114,7 @@
                     android:layout_height="wrap_content"
                     android:textSize="@dimen/w14dp"
                     android:textColor="@color/colorText_5"
-                    android:text="@string/title_work"/>
+                    android:text="@string/title_post"/>
                 <TextView
                     android:id="@+id/fragment_attendance_right_post"
                     android:layout_width="wrap_content"
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attender_register.xml
similarity index 79%
copy from VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register.xml
copy to VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attender_register.xml
index ff569af..16fa7be 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_attender_register.xml
@@ -2,7 +2,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:register="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/fragment_register_linear_layout"
+    android:id="@+id/fragment_attender_register_linear_layout"
     android:orientation="vertical" android:layout_width="match_parent"
     android:background="@android:color/white"
     android:layout_height="match_parent">
@@ -18,7 +18,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="@dimen/h50dp">
                 <TextView
-                    android:id="@+id/fragment_register_back"
+                    android:id="@+id/fragment_attender_register_back"
                     android:layout_width="wrap_content"
                     android:layout_height="match_parent"
                     android:text="&lt; 浜哄憳娉ㄥ唽"
@@ -36,7 +36,7 @@
                     android:layout_alignParentBottom="true"
                     android:layout_height="@dimen/h40dp">
                     <TextView
-                        android:id="@+id/fragment_register_add"
+                        android:id="@+id/fragment_attender_register_add"
                         android:layout_width="@dimen/w40dp"
                         android:layout_height="@dimen/h36dp"
                         android:gravity="center"
@@ -45,7 +45,7 @@
                         android:background="@drawable/u249"
                         android:text=""/>
                     <TextView
-                        android:id="@+id/fragment_register_save"
+                        android:id="@+id/fragment_attender_register_save"
                         android:layout_width="@dimen/w40dp"
                         android:layout_height="@dimen/h36dp"
                         android:gravity="center"
@@ -68,7 +68,7 @@
                     android:gravity="center_horizontal"
                     >
                     <ImageView
-                        android:id="@+id/fragment_register_surveillance_photo"
+                        android:id="@+id/fragment_attender_register_surveillance_photo"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#07000000"
@@ -76,7 +76,7 @@
                         android:adjustViewBounds="true"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_upload_custom_photo"
+                        android:id="@+id/fragment_attender_register_upload_custom_photo"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#07000000"
@@ -89,7 +89,7 @@
                         android:adjustViewBounds="true"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_id_card_photo"
+                        android:id="@+id/fragment_attender_register_id_card_photo"
                         android:layout_width="@dimen/w330dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#07000000"
@@ -103,7 +103,7 @@
                     android:gravity="center_horizontal"
                     >
                     <ImageView
-                        android:id="@+id/fragment_register_surveillance_photo_placeholder_image"
+                        android:id="@+id/fragment_attender_register_surveillance_photo_placeholder_image"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:alpha="0.35"
@@ -113,7 +113,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_upload_custom_photo_placeholder_image"
+                        android:id="@+id/fragment_attender_register_upload_custom_photo_placeholder_image"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:alpha="0.35"
@@ -129,7 +129,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_id_card_photo_placeholder_image"
+                        android:id="@+id/fragment_attender_register_id_card_photo_placeholder_image"
                         android:layout_width="@dimen/w330dp"
                         android:layout_height="@dimen/h206dp"
                         android:alpha="0.35"
@@ -143,7 +143,7 @@
                     android:gravity="center_horizontal"
                     >
                     <TextView
-                        android:id="@+id/fragment_register_surveillance_photo_placeholder_text_view"
+                        android:id="@+id/fragment_attender_register_surveillance_photo_placeholder_text_view"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:gravity="center"
@@ -153,7 +153,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <TextView
-                        android:id="@+id/fragment_register_upload_custom_photo_placeholder_text_view"
+                        android:id="@+id/fragment_attender_register_upload_custom_photo_placeholder_text_view"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#00000000"
@@ -165,7 +165,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <TextView
-                        android:id="@+id/fragment_register_id_card_photo_placeholder_text_view"
+                        android:id="@+id/fragment_attender_register_id_card_photo_placeholder_text_view"
                         android:layout_width="@dimen/w330dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#00000000"
@@ -187,34 +187,28 @@
                     android:layout_height="wrap_content"
                     android:orientation="vertical">
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_name"
+                        android:id="@+id/fragment_attender_register_name"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_name"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_gender"
+                        android:id="@+id/fragment_attender_register_gender"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_sex"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_country"
+                        android:id="@+id/fragment_attender_register_id_class"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
-                        register:label="@string/title_nation"
+                        register:label="@string/title_idClass"
                         />
-                    <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_birthday"
+                    <cn.com.basic.face.widget.register.RegisterRightFieldTextView
+                        android:id="@+id/fragment_attender_register_remark"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
-                        register:label="@string/title_birthday"
-                        />
-                    <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_visitor_class"
-                        android:layout_height="wrap_content"
-                        android:layout_width="@dimen/w311dp"
-                        register:label="@string/title_visitorClass"
+                        register:label="@string/title_remark"
                         />
                 </LinearLayout>
                 <LinearLayout
@@ -223,34 +217,22 @@
                     android:layout_marginLeft="@dimen/w122dp"
                     android:orientation="vertical">
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_phone"
+                        android:id="@+id/fragment_attender_register_post"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
-                        register:label="@string/title_phone"
-                        />
-                    <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_id_class"
-                        android:layout_height="wrap_content"
-                        android:layout_width="@dimen/w311dp"
-                        register:label="@string/title_idClass"
+                        register:label="@string/title_post"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_id_num"
+                        android:id="@+id/fragment_attender_register_department"
+                        android:layout_height="wrap_content"
+                        android:layout_width="@dimen/w311dp"
+                        register:label="@string/title_department"
+                        />
+                    <cn.com.basic.face.widget.register.RegisterRightFieldTextView
+                        android:id="@+id/fragment_attender_register_id_num"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_idNumber"
-                        />
-                    <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_company"
-                        android:layout_height="wrap_content"
-                        android:layout_width="@dimen/w311dp"
-                        register:label="@string/title_companyName"
-                        />
-                    <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_remark"
-                        android:layout_height="wrap_content"
-                        android:layout_width="@dimen/w311dp"
-                        register:label="@string/title_remark"
                         />
                 </LinearLayout>
             </LinearLayout>
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml
index 92b7ce7..873fb11 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml
@@ -123,6 +123,7 @@
         android:paddingRight="@dimen/h4dp"
         android:orientation="horizontal"
         android:layout_weight="0"
+        android:id="@+id/fragment_surveillance_bottom_linear_layout"
         >
         <RelativeLayout
             android:layout_width="wrap_content"
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml
index a5579fb..791a6a0 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_register_cell.xml
@@ -15,6 +15,7 @@
         android:paddingLeft="@dimen/w5dp"
         android:paddingBottom="@dimen/h5dp"
         />
+    <!--
     <TextView
         android:id="@+id/fragment_home_bottom_register_cell_to_register"
         android:layout_width="wrap_content"
@@ -28,5 +29,22 @@
         android:layout_alignParentBottom="true"
         android:textColor="@android:color/white"
         android:layout_alignParentRight="true"/>
+-->
+    <TextView
+        android:id="@+id/fragment_home_bottom_register_cell_to_register"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="#FFA500"
+        android:paddingRight="@dimen/w7dp"
+        android:paddingLeft="@dimen/w10dp"
+        android:layout_marginTop="@dimen/h12dp"
+        android:layout_marginRight="@dimen/w5dp"
+        android:paddingBottom="@dimen/h2dp"
+        android:textSize="@dimen/w16dp"
+        android:text="鏈敞鍐�"
+        android:textColor="@android:color/white"
+        android:layout_alignParentRight="true"
+        android:visibility="visible"
+        />
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml
index 908b7f0..905003d 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_bottom_visitor_cell.xml
@@ -33,7 +33,7 @@
         android:background="@color/colorRed"
         android:paddingRight="@dimen/w7dp"
         android:paddingLeft="@dimen/w10dp"
-        android:paddingTop="@dimen/h2dp"
+        android:layout_marginTop="@dimen/h10dp"
         android:paddingBottom="@dimen/h2dp"
         android:textSize="@dimen/w16dp"
         android:text="璀︽姤"
@@ -69,7 +69,7 @@
             android:layout_width="@dimen/view_size_0"
             android:layout_height="match_parent"
             android:layout_weight="1"
-            android:text="鏉ヨ鐧昏"
+            android:text="鏉ヨ"
             android:background="#40F6335A"
             android:textSize="@dimen/w10dp"
             android:gravity="center"
diff --git a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register.xml b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_visitor_register.xml
similarity index 86%
rename from VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register.xml
rename to VisitFace/DemoForBsk/app/src/main/res/layout/fragment_visitor_register.xml
index ff569af..fb0f669 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_register.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/layout/fragment_visitor_register.xml
@@ -2,7 +2,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:register="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/fragment_register_linear_layout"
+    android:id="@+id/fragment_visitor_register_linear_layout"
     android:orientation="vertical" android:layout_width="match_parent"
     android:background="@android:color/white"
     android:layout_height="match_parent">
@@ -18,7 +18,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="@dimen/h50dp">
                 <TextView
-                    android:id="@+id/fragment_register_back"
+                    android:id="@+id/fragment_visitor_register_back"
                     android:layout_width="wrap_content"
                     android:layout_height="match_parent"
                     android:text="&lt; 浜哄憳娉ㄥ唽"
@@ -36,7 +36,7 @@
                     android:layout_alignParentBottom="true"
                     android:layout_height="@dimen/h40dp">
                     <TextView
-                        android:id="@+id/fragment_register_add"
+                        android:id="@+id/fragment_visitor_register_add"
                         android:layout_width="@dimen/w40dp"
                         android:layout_height="@dimen/h36dp"
                         android:gravity="center"
@@ -45,7 +45,7 @@
                         android:background="@drawable/u249"
                         android:text=""/>
                     <TextView
-                        android:id="@+id/fragment_register_save"
+                        android:id="@+id/fragment_visitor_register_save"
                         android:layout_width="@dimen/w40dp"
                         android:layout_height="@dimen/h36dp"
                         android:gravity="center"
@@ -68,7 +68,7 @@
                     android:gravity="center_horizontal"
                     >
                     <ImageView
-                        android:id="@+id/fragment_register_surveillance_photo"
+                        android:id="@+id/fragment_visitor_register_surveillance_photo"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#07000000"
@@ -76,7 +76,7 @@
                         android:adjustViewBounds="true"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_upload_custom_photo"
+                        android:id="@+id/fragment_visitor_register_upload_custom_photo"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#07000000"
@@ -89,7 +89,7 @@
                         android:adjustViewBounds="true"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_id_card_photo"
+                        android:id="@+id/fragment_visitor_register_id_card_photo"
                         android:layout_width="@dimen/w330dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#07000000"
@@ -103,7 +103,7 @@
                     android:gravity="center_horizontal"
                     >
                     <ImageView
-                        android:id="@+id/fragment_register_surveillance_photo_placeholder_image"
+                        android:id="@+id/fragment_visitor_register_surveillance_photo_placeholder_image"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:alpha="0.35"
@@ -113,7 +113,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_upload_custom_photo_placeholder_image"
+                        android:id="@+id/fragment_visitor_register_upload_custom_photo_placeholder_image"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:alpha="0.35"
@@ -129,7 +129,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <ImageView
-                        android:id="@+id/fragment_register_id_card_photo_placeholder_image"
+                        android:id="@+id/fragment_visitor_register_id_card_photo_placeholder_image"
                         android:layout_width="@dimen/w330dp"
                         android:layout_height="@dimen/h206dp"
                         android:alpha="0.35"
@@ -143,7 +143,7 @@
                     android:gravity="center_horizontal"
                     >
                     <TextView
-                        android:id="@+id/fragment_register_surveillance_photo_placeholder_text_view"
+                        android:id="@+id/fragment_visitor_register_surveillance_photo_placeholder_text_view"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:gravity="center"
@@ -153,7 +153,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <TextView
-                        android:id="@+id/fragment_register_upload_custom_photo_placeholder_text_view"
+                        android:id="@+id/fragment_visitor_register_upload_custom_photo_placeholder_text_view"
                         android:layout_width="@dimen/w197dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#00000000"
@@ -165,7 +165,7 @@
                         android:paddingTop="@dimen/h70dp"
                         />
                     <TextView
-                        android:id="@+id/fragment_register_id_card_photo_placeholder_text_view"
+                        android:id="@+id/fragment_visitor_register_id_card_photo_placeholder_text_view"
                         android:layout_width="@dimen/w330dp"
                         android:layout_height="@dimen/h206dp"
                         android:background="#00000000"
@@ -187,31 +187,31 @@
                     android:layout_height="wrap_content"
                     android:orientation="vertical">
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_name"
+                        android:id="@+id/fragment_visitor_register_name"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_name"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_gender"
+                        android:id="@+id/fragment_visitor_register_gender"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_sex"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_country"
+                        android:id="@+id/fragment_visitor_register_country"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_nation"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_birthday"
+                        android:id="@+id/fragment_visitor_register_birthday"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_birthday"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_visitor_class"
+                        android:id="@+id/fragment_visitor_register_visitor_class"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_visitorClass"
@@ -223,31 +223,31 @@
                     android:layout_marginLeft="@dimen/w122dp"
                     android:orientation="vertical">
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_phone"
+                        android:id="@+id/fragment_visitor_register_phone"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_phone"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldLabelView
-                        android:id="@+id/fragment_register_id_class"
+                        android:id="@+id/fragment_visitor_register_id_class"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_idClass"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_id_num"
+                        android:id="@+id/fragment_visitor_register_id_num"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_idNumber"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_company"
+                        android:id="@+id/fragment_visitor_register_company"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_companyName"
                         />
                     <cn.com.basic.face.widget.register.RegisterRightFieldTextView
-                        android:id="@+id/fragment_register_remark"
+                        android:id="@+id/fragment_visitor_register_remark"
                         android:layout_height="wrap_content"
                         android:layout_width="@dimen/w311dp"
                         register:label="@string/title_remark"
diff --git a/VisitFace/DemoForBsk/app/src/main/res/values/strings.xml b/VisitFace/DemoForBsk/app/src/main/res/values/strings.xml
index 94714f3..1c652fb 100644
--- a/VisitFace/DemoForBsk/app/src/main/res/values/strings.xml
+++ b/VisitFace/DemoForBsk/app/src/main/res/values/strings.xml
@@ -18,7 +18,7 @@
     <string name="title_visitor_end_time">绂诲紑鏃堕棿锛�</string>
     <string name="title_card_number">鍗″彿锛�</string>
     <string name="title_department">閮ㄩ棬/鐝骇锛�</string>
-    <string name="title_work">鑱屽姟锛�</string>
+    <string name="title_post">鑱屽姟锛�</string>
     <string name="check_class">鏌ヨ鍒嗙被锛�</string>
 
 

--
Gitblit v1.8.0