From 26201eca8dc6a86f37b5d30469edeab367786cd0 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 29 六月 2017 09:32:54 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java |  164 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 159 insertions(+), 5 deletions(-)

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
index c11daf8..f85f66e 100644
--- 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
@@ -1,6 +1,7 @@
 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;
@@ -21,6 +22,8 @@
 
 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;
@@ -50,13 +53,19 @@
 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.common.util.FileUtil;
 import org.xutils.http.RequestParams;
 
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.FileOutputStream;
+import java.io.Reader;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -138,13 +147,42 @@
         resetForm();
     }
 
+    private File writeToFile(String fileName, byte[] fileBytes) {
+        try {
+            String dir = MainActivity.getInstance().getFilesDir().getAbsolutePath();
+
+            File file = new File(dir, fileName);
+            if (file.exists()) {
+                file.delete();
+            }
+            file.createNewFile();
+            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(dir, fileName)));
+            bos.write(fileBytes);
+            bos.flush();
+            bos.close();
+            return new File(dir, fileName);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
     @OnClick(R.id.fragment_register_save)
     public void fragment_register_save_click(View v) {
+//        RegisterMng.getInstance().add(null);
+//        if (1==1) {
+//            return;
+//        }
 
         if (!BaseApplication.deviceAvailable) {
             return;
         }
 
+//        SurveillanceMng.getInstance().addBitmap(new ArrayList(), new byte[]{1,2,3}, 3, "1");
+//
+//        if (1==1) {
+//            return;
+//        }
         RequestParams params = new RequestParams();
 
         String name = fragment_register_name.getValue();
@@ -220,6 +258,17 @@
         pd.addValue(Register.FieldNames.birthday, birthday);
 
 
+        params.addBodyParameter(Register.FieldNames.username, name);
+        params.addBodyParameter(Register.FieldNames.mobilePhone, phone);
+        params.addBodyParameter(Register.FieldNames.genderId, DictionaryMng.getInstance().getId(gender));
+        params.addBodyParameter(Register.FieldNames.identityTypeId, DictionaryMng.getInstance().getId(id_class));
+        params.addBodyParameter(Register.FieldNames.countryId, DictionaryMng.getInstance().getId(country));
+        params.addBodyParameter(Register.FieldNames.visitorTypeId, DictionaryMng.getInstance().getId(visitor_class));
+        params.addBodyParameter(Register.FieldNames.identifyNum, id_num);
+        params.addBodyParameter(Register.FieldNames.companyId, company);
+        params.addBodyParameter(Register.FieldNames.birthday, birthday);
+
+
         if (surveillanceQueryItem_selectPhoto != null) {
             params.addBodyParameter("width", surveillanceQueryItem_selectPhoto.getWidth());
             params.addBodyParameter("height", surveillanceQueryItem_selectPhoto.getHeight());
@@ -231,6 +280,10 @@
                 imageBytes[i] = nativeImg.image[i];
             }
             pd.addData("rawSurveillancePhoto", "application/octet-stream", imageBytes);
+
+            params.addBodyParameter("rawSurveillancePhoto", writeToFile("rawSurveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("rawSurveillancePhoto", writeToFile("rawSurveillancePhoto", new byte[]{}));
         }
 
         if (fragment_register_surveillance_photo_img != null) {
@@ -238,6 +291,10 @@
             fragment_register_surveillance_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
             byte[] imageBytes = byteArrayOutputStream.toByteArray();
             pd.addData(Register.FieldNames.surveillancePhoto, "application/octet-stream", imageBytes);
+
+            params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", new byte[]{}));
         }
 
         if (fragment_register_upload_custom_photo_img != null) {
@@ -245,6 +302,10 @@
             fragment_register_upload_custom_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
             byte[] imageBytes = byteArrayOutputStream.toByteArray();
             pd.addData(Register.FieldNames.uploadCustomPhoto, "application/octet-stream", imageBytes);
+
+            params.addBodyParameter("uploadCustomPhoto", writeToFile("uploadCustomPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("uploadCustomPhoto", writeToFile("uploadCustomPhoto", new byte[]{}));
         }
 
         if (fragment_register_id_card_photo_img != null) {
@@ -252,6 +313,10 @@
             fragment_register_id_card_photo_img.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
             byte[] imageBytes = byteArrayOutputStream.toByteArray();
             pd.addData(Register.FieldNames.idCardPhoto, "application/octet-stream", imageBytes);
+
+            params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", new byte[]{}));
         }
 
 
@@ -260,8 +325,8 @@
             @Override
             protected String doInBackground(String... urls) {
                 try {
-                    Uploader uploader = new Uploader("", AppApi.BASE_URL + AppApi.REGISTER_ADD);
-                    json = uploader.upload("", pd);
+//                    Uploader uploader = new Uploader("", AppApi.BASE_URL + AppApi.REGISTER_ADD);
+//                    json = uploader.upload("", pd);
                     return json;
                 } catch (Exception e) {
                     e.printStackTrace();
@@ -280,9 +345,11 @@
             }
 
         }
-        ConnectionTask task = new ConnectionTask();
-        String[] params1 = new String[2];
-        task.execute(params1);
+//        ConnectionTask task = new ConnectionTask();
+//        String[] params1 = new String[2];
+//        task.execute(params1);
+
+        RegisterMng.getInstance().add(params);
     }
 
     public void set_fragment_register_surveillance_photo(SurveillanceQueryItem item) {
@@ -551,6 +618,93 @@
     @Override
     protected void initData() {
         resetForm();
+        readIdCard();
     }
 
+    public void readIdCard() {
+        try {
+            Thread.sleep(100);
+
+            RFIDReader idCardReader = null; //RFIDReader.getInstance(MainActivity.getInstance(), "com");
+            ByteArrayInputStream type = new ByteArrayInputStream("uart".getBytes());
+            idCardReader.control(ReaderExtra.CONNECT, type);
+            idCardReader.setUartDeviceName("/dev/S0");
+
+            idCardReader.open("id_card");
+            String cardId = byteArrayToHexString(idCardReader.getUid());
+
+            idCardReader.open("id_sam");
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            idCardReader.control(ReaderExtra.ID_READ_TEXT_PHOTO, baos);
+            String textPhoto = byteArrayToHexString(baos.toByteArray());
+            if (textPhoto != null) {
+                String[] decodeInfo = new String[10];
+                StringBuilder imagePath = new StringBuilder();
+                String path = MainActivity.getInstance().getFilesDir().getAbsolutePath();
+                IDCReaderSDK.initialize(path);
+                IDCReaderSDK.decodeSamAck(textPhoto, decodeInfo, imagePath);
+                String name = decodeInfo[0];
+                String sex = decodeInfo[1];
+                String nation = decodeInfo[2];
+                String birth = decodeInfo[3];
+                String address = decodeInfo[4];
+                String idNumber = decodeInfo[5];
+                String office = decodeInfo[6];
+                String validDate = decodeInfo[7] + "-" + decodeInfo[8];
+                String photo = imagePath.toString();
+
+                comparePictures();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void comparePictures() {
+
+        RequestParams params = new RequestParams();
+
+        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", writeToFile("surveillancePhoto", imageBytes));
+        } else {
+            params.addBodyParameter("surveillancePhoto", writeToFile("surveillancePhoto", 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", writeToFile("idCardPhoto", imageBytes));
+        } else {
+            params.addBodyParameter("idCardPhoto", writeToFile("idCardPhoto", new byte[]{}));
+        }
+
+        RegisterMng.getInstance().compareSurveillancePhotoAndIdCardPhoto(params);
+    }
+
+    protected static final char[] a = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
+    public static String byteArrayToHexString(byte[] bytes) {
+        if(bytes == null) {
+            return null;
+        } else {
+            char[] hexChars = new char[bytes.length * 2];
+
+            for(int j = 0; j < bytes.length; ++j) {
+                int v = bytes[j] & 255;
+                hexChars[j * 2] = a[v >>> 4];
+                hexChars[j * 2 + 1] = a[v & 15];
+            }
+
+            return new String(hexChars);
+        }
+    }
+
+
+
 }

--
Gitblit v1.8.0