xuxiuxi
2017-08-01 e09e9f8a34cbc99a33dfa9ef1792b0025575c3a8
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/AttenderRegisterFragment.java
@@ -9,13 +9,13 @@
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -26,24 +26,26 @@
import cn.com.basic.face.base.BaseFragment;
import cn.com.basic.face.dialog.AttenderRegisterSelectPhotoDialog;
import cn.com.basic.face.dialog.AttenderRegisterUploadPhotoDialog;
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.OfflineAttenderRegisterItem;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.service.DepartmentMng;
import cn.com.basic.face.service.DictionaryMng;
import cn.com.basic.face.service.PostMng;
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.thread.IdCardReaderThread;
import cn.com.basic.face.util.KeyboardUtil;
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;
@@ -60,6 +62,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import cn.com.basic.face.base.MainActivity;
@@ -145,69 +148,159 @@
    public void fragment_attender_register_save_click(View v) {
        RequestParams params = new RequestParams();
        if (surveillanceQueryItem_selectPhoto == null) {
            Toast.makeText(MainActivity.getInstance(), "请选择照片", Toast.LENGTH_SHORT).show();
            return;
        }
        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;
        }
        String gender = fragment_attender_register_gender.getValue();
        if (gender.trim().length() <= 0) {
            Toast.makeText(MainActivity.getInstance(), "性别不能为空", Toast.LENGTH_SHORT).show();
            fragment_attender_register_gender.callOnClick();
            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.postId, DictionaryMng.getInstance().getId(fragment_attender_register_post.getValue()));
        params.addBodyParameter(Register.FieldNames.post, fragment_attender_register_post.getValue());
        params.addBodyParameter(Register.FieldNames.identifyNum, fragment_attender_register_id_num.getValue());
        params.addBodyParameter(Register.FieldNames.departmentId, DictionaryMng.getInstance().getId(fragment_attender_register_department.getValue()));
        params.addBodyParameter(Register.FieldNames.department, fragment_attender_register_department.getValue());
        params.addBodyParameter(Register.FieldNames.remark, fragment_attender_register_remark.getValue());
        params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
        String post = fragment_attender_register_post.getValue();
        if (post.trim().length() <= 0) {
            Toast.makeText(MainActivity.getInstance(), "职务类型不能为空", Toast.LENGTH_SHORT).show();
            fragment_attender_register_post.callOnClick();
            return;
        }
        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();
        String department = fragment_attender_register_department.getValue();
        if (department.trim().length() <= 0) {
            Toast.makeText(MainActivity.getInstance(), "部门班级不能为空", Toast.LENGTH_SHORT).show();
            fragment_attender_register_department.callOnClick();
            return;
        }
        OfflineAttenderRegisterItem offlineAttenderRegisterItem = new OfflineAttenderRegisterItem();
        if(BaseApplication.getInstance().networkAvailable()) {
            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.postId, DictionaryMng.getInstance().getId(fragment_attender_register_post.getValue()));
            params.addBodyParameter(Register.FieldNames.post, fragment_attender_register_post.getValue());
            params.addBodyParameter(Register.FieldNames.identifyNum, fragment_attender_register_id_num.getValue());
            params.addBodyParameter(Register.FieldNames.departmentId, DictionaryMng.getInstance().getId(fragment_attender_register_department.getValue()));
            params.addBodyParameter(Register.FieldNames.department, fragment_attender_register_department.getValue());
            params.addBodyParameter(Register.FieldNames.remark, fragment_attender_register_remark.getValue());
            NativeImg nativeImg = surveillanceQueryItem_selectPhoto.getNativeImg();
            byte[] imageBytes = new byte[nativeImg.size];
            for (int i = 0; i < nativeImg.size; i++) {
                imageBytes[i] = nativeImg.image[i];
            if (surveillanceQueryItem_selectPhoto != null) {
                params.addBodyParameter("rawSurveillancePhotoWidth", surveillanceQueryItem_selectPhoto.getWidth());
                params.addBodyParameter("rawSurveillancePhotoHeight", surveillanceQueryItem_selectPhoto.getHeight());
                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_attender", imageBytes));
            } else {
                params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto_attender", new byte[]{}));
            }
            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto_attender", imageBytes));
            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_attender", imageBytes));
            } else {
                params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto_attender", 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_attender", imageBytes));
            } else {
                params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto_attender", 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_attender", imageBytes));
            } else {
                params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto_attender", new byte[]{}));
            }
        } else {
            params.addBodyParameter("rawSurveillancePhoto", FileUtil.writeToFile("rawSurveillancePhoto_attender", new byte[]{}));
            offlineAttenderRegisterItem.setRegisterId(UUID.randomUUID().toString());
            offlineAttenderRegisterItem.setUsername(name);
            offlineAttenderRegisterItem.setGenderId(DictionaryMng.getInstance().getId(fragment_attender_register_gender.getValue()));
            offlineAttenderRegisterItem.setIdentityTypeId(DictionaryMng.getInstance().getId(fragment_attender_register_id_class.getValue()));
            offlineAttenderRegisterItem.setPostId(PostMng.getInstance().getId(fragment_attender_register_post.getValue()));
            offlineAttenderRegisterItem.setIdentifyNum(fragment_attender_register_id_num.getValue());
            offlineAttenderRegisterItem.setDepartmentId(DepartmentMng.getInstance().getId(fragment_attender_register_department.getValue()));
            offlineAttenderRegisterItem.setRemark(fragment_attender_register_remark.getValue());
            offlineAttenderRegisterItem.setDeviceCompanyId(BaseApplication.getInstance().getAndroidDevice().getCompanyId());
            offlineAttenderRegisterItem.setIsSynchron("N");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            offlineAttenderRegisterItem.setCreateTime(sdf.format(new Date()));
            String rawSurveillancePhotoPath = UUID.randomUUID().toString()+"";
            byte[] rawSurveillancePhotoBytes = new byte[]{};
            if (surveillanceQueryItem_selectPhoto != null) {
                offlineAttenderRegisterItem.setRawSurveillancePhotoWidth(surveillanceQueryItem_selectPhoto.getWidth());
                offlineAttenderRegisterItem.setRawSurveillancePhotoHeight(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];
                }
                rawSurveillancePhotoBytes = imageBytes;
            }
            FileUtil.writeToFile(rawSurveillancePhotoPath, rawSurveillancePhotoBytes);
            offlineAttenderRegisterItem.setRawSurveillancePhotoPath(rawSurveillancePhotoPath);
            String surveillancePhotoPath = UUID.randomUUID().toString()+"";
            byte[] surveillancePhotoBytes = 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);
                surveillancePhotoBytes = byteArrayOutputStream.toByteArray();
            }
            FileUtil.writeToFile(surveillancePhotoPath, surveillancePhotoBytes);
            offlineAttenderRegisterItem.setSurveillancePhoto(surveillancePhotoPath);
            String uploadCustomPhotoPath = UUID.randomUUID().toString()+"";
            byte[] uploadCustomPhotoBytes = 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);
                uploadCustomPhotoBytes = byteArrayOutputStream.toByteArray();
            }
            FileUtil.writeToFile(uploadCustomPhotoPath, uploadCustomPhotoBytes);
            offlineAttenderRegisterItem.setUploadCustomPhoto(uploadCustomPhotoPath);
            String idCardPhotoPath = UUID.randomUUID().toString()+"";
            byte[] idCardPhotoBytes = 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);
                idCardPhotoBytes = byteArrayOutputStream.toByteArray();
            }
            FileUtil.writeToFile(idCardPhotoPath, idCardPhotoBytes);
            offlineAttenderRegisterItem.setIdCardPhoto(idCardPhotoPath);
        }
        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_attender", imageBytes));
        } else {
            params.addBodyParameter("surveillancePhoto", FileUtil.writeToFile("surveillancePhoto_attender", 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_attender", imageBytes));
        } else {
            params.addBodyParameter("uploadCustomPhoto", FileUtil.writeToFile("uploadCustomPhoto_attender", 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_attender", imageBytes));
        } else {
            params.addBodyParameter("idCardPhoto", FileUtil.writeToFile("idCardPhoto_attender", new byte[]{}));
        }
        RegisterMng.getInstance().addAttender(params, idCardHeadPath);
        RegisterMng.getInstance().addAttender(params, idCardHeadPath, offlineAttenderRegisterItem);
    }
    public void set_fragment_attender_register_surveillance_photo(SurveillanceQueryItem item) {
@@ -397,20 +490,17 @@
    @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 AttenderRegisterSelectPhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
            public void onSelected(String value) {
            }
        }, selectedSurveillancePhotoId);
        AttenderRegisterSelectPhotoDialog.getInstance().show();
    }
    public FrameLayout get_fragment_attender_register_linear_layout() {
        return fragment_attender_register_linear_layout;
    }
    @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 AttenderRegisterUploadPhotoDialog(fragment_attender_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() {
            public void onSelected(String value) {
            }
        }, selectedCustomPhotoId);
        AttenderRegisterUploadPhotoDialog.getInstance().show();
    }
    @OnClick(R.id.fragment_attender_register_id_card_photo)
@@ -448,6 +538,7 @@
            idCardReaderThread = new IdCardReaderThread();
            idCardReaderThread.start();
        }
        setupUI(getView());
    }
    public void fillFormWithIdCard(IdCard idCard) {
@@ -502,4 +593,5 @@
        }, fragment_attender_register_department.getValue());
    }
}