| | |
| | | |
| | | import com.basic.security.R; |
| | | import com.basic.security.base.BaseFragment; |
| | | import com.basic.security.manager.BaseSettingManager; |
| | | import com.basic.security.manager.HintSignUpManager; |
| | | import com.basic.security.manager.PersonIdentityManager; |
| | | import com.basic.security.manager.PersonManager; |
| | | import com.basic.security.manager.impl.cblite.AccountManager; |
| | | import com.basic.security.manager.impl.cblite.BaseSettingManager; |
| | | import com.basic.security.manager.impl.cblite.HintSignUpManager; |
| | | import com.basic.security.manager.impl.cblite.PersonIdentityManager; |
| | | import com.basic.security.manager.impl.cblite.PersonManager; |
| | | import com.basic.security.model.ModelAdapter; |
| | | import com.basic.security.model.Person; |
| | | import com.basic.security.utils.BasicIdUtil; |
| | | import com.basic.security.utils.ButtonClickIntervalsUtils; |
| | | import com.basic.security.utils.CheckIdCard; |
| | | import com.basic.security.utils.FaceId; |
| | | import com.basic.security.utils.IdCard; |
| | | import com.basic.security.utils.PhoneNumberCheckUtils; |
| | | import com.basic.security.utils.ToastUtil; |
| | | import com.basic.security.widget.ConfirmDialog; |
| | |
| | | |
| | | public ModelAdapter selectedPersonDocument; |
| | | public boolean needVerifyIDCard = false; |
| | | private boolean isFromAdminRegister = false; |
| | | private boolean canSavePerson = true; |
| | | public ConfirmDialog confirmDialog; |
| | | public String savedPersonId; |
| | | boolean messageComplete = false; |
| | | private boolean isFromAdminRegister = false; |
| | | private boolean canSavePerson = true; |
| | | private String all_device = null; |
| | | |
| | | public boolean needIdCardInfo() { |
| | |
| | | @Override |
| | | public void show() { |
| | | if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard) { |
| | | ((PersonIdentityFragment) mainActivity().fragment_person_identity).setIdentityWithPerson(null); |
| | | mainActivity().fragment_person_identity.setIdentityWithPerson(null); |
| | | } |
| | | // 解决从注册页面跳到人员管理页面,第一次不显示请在刷卡区验证身份证 |
| | | if (selectedPersonDocument != null && isFromAdminRegister) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).setPerson(selectedPersonDocument); |
| | | mainActivity().fragment_face_detail.setPerson(selectedPersonDocument); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | public void savePerson() { |
| | | public boolean savePerson() { |
| | | if (!ButtonClickIntervalsUtils.isCanClick()) { |
| | | return; |
| | | return false; |
| | | } |
| | | final String[] msg = {"保存成功"}; |
| | | canSavePerson = true; |
| | | BaseFragment currentFragment = mainActivity().currentFragment; |
| | | class SavePersonHelper { |
| | | public void execute() { |
| | | public boolean execute() { |
| | | if (checkPersonDocument()) { |
| | | if (!canSavePerson) {// 校验身份证号和手机号是否符合要求 |
| | | return; |
| | | return false; |
| | | } |
| | | if (needSaveIdCard()) { |
| | | saveIdCard(); |
| | |
| | | setVerifyStatus(); |
| | | } |
| | | setIsRegistered(); |
| | | if (((PersonIdentityFragment) mainActivity().fragment_person_identity).savePersonIdentity(selectedPersonDocument.getId())) { |
| | | if (mainActivity().fragment_person_identity.savePersonIdentity(selectedPersonDocument.getId())) { |
| | | byte[] camera_image_feature = selectedPersonDocument.getBlob("camera_image_feature"); |
| | | if (camera_image_feature != null && camera_image_feature != null) { |
| | | // 解决在personManager的已注册中人员信息不完整的提示,人员信息不完整,不保存 |
| | | // boolean messageComplete = ((FaceDetailFragment) mainActivity().fragment_face_detail).detailMessageIsComplete(); |
| | | int identitySize = ((PersonIdentityFragment) mainActivity().fragment_person_identity).getIdentitySize(); |
| | | int identitySize = mainActivity().fragment_person_identity.getIdentitySize(); |
| | | identitySize = 1; // 不判断是否有身份信息 |
| | | if ("已注册".equals(selectedPersonDocument.getString("sign_up_status")) |
| | | && currentFragment == mainActivity().fragment_person_manage) { |
| | | if (!messageComplete) { |
| | | return; |
| | | return false; |
| | | } |
| | | if (identitySize == 0) { |
| | | ToastUtil.show("请选择身份"); |
| | | return; |
| | | return false; |
| | | } |
| | | ToastUtil.show(msg[0]); |
| | | } |
| | |
| | | PersonManager.savePerson(selectedPersonDocument); |
| | | savedPersonId = selectedPersonDocument.getId(); |
| | | |
| | | doInUIThread(selectedPersonDocument); |
| | | |
| | | afterSavePerson(selectedPersonDocument); |
| | | if (isNewPerson()) { |
| | | try { |
| | | String camera_image_path = selectedPersonDocument.getString(Person.camera_image_path); |
| | | byte[] feature = FaceId.instance.extractFeature(camera_image_path); |
| | | if (feature == null) { |
| | | PersonManager.deletePerson(selectedPersonDocument); |
| | | return false; |
| | | } |
| | | } catch (Exception e) { |
| | | PersonManager.deletePerson(selectedPersonDocument); |
| | | return false; |
| | | } |
| | | FaceId.instance.addFeatureToDb(selectedPersonDocument.getId(), selectedPersonDocument.getBlob("camera_image_feature")); |
| | | ToastUtil.show("注册成功"); |
| | | } |
| | | } else { |
| | | ToastUtil.show("获取头像失败,请稍后重试!"); |
| | |
| | | }); |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | public void setDevice(){ |
| | | |
| | | public void setDevice() { |
| | | //获取选择的设备:当前设备还是集群所有设备 |
| | | String s = ((PersonIdentityFragment) mainActivity().fragment_person_identity).aboutDevice(); |
| | | selectedPersonDocument.setString("all_device",s); |
| | | String s = mainActivity().fragment_person_identity.aboutDevice(); |
| | | selectedPersonDocument.setString("all_device", s); |
| | | } |
| | | |
| | | public void setIsRegistered() { |
| | |
| | | } |
| | | if (AccountManager.adminLoggedIn()) { |
| | | String sign_up_status = selectedPersonDocument.getString("sign_up_status"); |
| | | messageComplete = ((FaceDetailFragment) mainActivity().fragment_face_detail).detailMessageIsComplete(); |
| | | int identitySize = ((PersonIdentityFragment) mainActivity().fragment_person_identity).getIdentitySize(); |
| | | messageComplete = mainActivity().fragment_face_detail.detailMessageIsComplete(); |
| | | int identitySize = mainActivity().fragment_person_identity.getIdentitySize(); |
| | | identitySize = 1; // 不判断是否有身份信息都可以保存 |
| | | if (mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_compare_success |
| | | || mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard |
| | |
| | | // } |
| | | if (messageComplete) { |
| | | selectedPersonDocument.setString("sign_up_status", "已注册"); |
| | | ToastUtil.show("注册成功"); |
| | | } else { |
| | | selectedPersonDocument.setString("sign_up_status", "未注册"); |
| | | } |
| | |
| | | |
| | | if (currentFragment == mainActivity().fragment_su_logged_nic_wait_detail) { |
| | | mainActivity().showFragment(mainActivity().fragment_su_logged_nic_wait_face); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).clearInPutText(); |
| | | mainActivity().fragment_face_detail.clearInPutText(); |
| | | return; |
| | | } |
| | | if (currentFragment == mainActivity().fragment_su_logged_ic_wait_face) { |
| | |
| | | if (currentFragment == mainActivity().fragment_su_logged_ic_compare_success) { |
| | | isFromAdminRegister = true; |
| | | mainActivity().showFragment(mainActivity().fragment_su_logged_ic_wait_face); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).clearInPutText(); |
| | | mainActivity().fragment_face_detail.clearInPutText(); |
| | | return; |
| | | } |
| | | if (currentFragment == mainActivity().fragment_su_logged_ic_wait_idcard) { |
| | |
| | | if (mainActivity().currentFragment != mainActivity().fragment_person_manage) { |
| | | if (mainActivity().currentFragment != mainActivity().fragment_su_logged_nic_wait_face |
| | | || mainActivity().currentFragment != mainActivity().fragment_su_logged_nic_wait_detail) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).setPerson(null); |
| | | ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setIdentityWithPerson(null); |
| | | ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setDevice("0"); |
| | | mainActivity().fragment_face_detail.setPerson(null); |
| | | mainActivity().fragment_person_identity.setIdentityWithPerson(null); |
| | | mainActivity().fragment_person_identity.setDevice("0"); |
| | | } else { |
| | | personChanged(null); |
| | | } |
| | | } else { |
| | | if ("未注册".equals(((FaceListFragment) mainActivity().fragment_face_list).isRegister)) { |
| | | ((FaceListFragment) mainActivity().fragment_face_list).findNextPosition(selectedPersonDocument); |
| | | if ("未注册".equals(mainActivity().fragment_face_list.isRegister)) { |
| | | mainActivity().fragment_face_list.findNextPosition(selectedPersonDocument); |
| | | } else { |
| | | personChanged(PersonManager.findPersonById(selectedPersonDocument.getId()), false); |
| | | } |
| | |
| | | selectedPersonDocument.setString("checked_time_rule_id", BaseSettingManager.getDefaultRegisterTimeId()); |
| | | } |
| | | if (currentFragment == mainActivity().fragment_su_auto_ic_compare_success) { |
| | | String phone = ((SuAutoIcCompareSuccessFragment) mainActivity().fragment_su_auto_ic_compare_success).phone_number.getText().toString().trim(); |
| | | String phone = mainActivity().fragment_su_auto_ic_compare_success.phone_number.getText().toString().trim(); |
| | | if (!TextUtils.isEmpty(phone) && !PhoneNumberCheckUtils.isPhone(phone)) { |
| | | allowPhone = false; |
| | | } else { |
| | |
| | | } |
| | | } else if (currentFragment == mainActivity().fragment_su_auto_wait_face) { |
| | | } else if (currentFragment == mainActivity().fragment_su_auto_nic_wait_detail) { |
| | | SuAutoNicWaitDetailFragment fragment_su_auto_nic_wait_detail = (SuAutoNicWaitDetailFragment) mainActivity().fragment_su_auto_nic_wait_detail; |
| | | SuAutoNicWaitDetailFragment fragment_su_auto_nic_wait_detail = mainActivity().fragment_su_auto_nic_wait_detail; |
| | | |
| | | String phone = fragment_su_auto_nic_wait_detail.phone_number.getText().toString(); |
| | | String idCardNumber = fragment_su_auto_nic_wait_detail.id_card.getText().toString(); |
| | |
| | | } |
| | | } |
| | | if (AccountManager.adminLoggedIn()) { |
| | | FaceDetailFragment faceDetailFragment = (FaceDetailFragment) mainActivity().fragment_face_detail; |
| | | FaceDetailFragment faceDetailFragment = mainActivity().fragment_face_detail; |
| | | String phone = faceDetailFragment.getInPutPhoneNumber(); |
| | | String idCardNumber = faceDetailFragment.getInPutIdCardNumber(); |
| | | selectedPersonDocument.setString("sign_up_rule", faceDetailFragment.getSignUpRule()); |
| | |
| | | return false; |
| | | } |
| | | } |
| | | new SavePersonHelper().execute(); |
| | | return new SavePersonHelper().execute(); |
| | | } |
| | | |
| | | @UiThread |
| | | public void doInUIThread(ModelAdapter selectedPersonDocument) { |
| | | public void afterSavePerson(ModelAdapter selectedPersonDocument) { |
| | | // 解决当修改过人员信息后再点击保存清空数据 |
| | | try { |
| | | if (selectedPersonDocument != null) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).setText(selectedPersonDocument.getId()); |
| | | mainActivity().fragment_face_detail.setFaceDetailUI(selectedPersonDocument.getId()); |
| | | // personChanged(selectedPersonDocument); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | |
| | | if (mainActivity().currentFragment == mainActivity().fragment_person_manage) { |
| | | // 此方法删除后会选中前一个,如果是第一个会选中后一个 |
| | | ((FaceListFragment) mainActivity().fragment_face_list).findNextPosition(selectedPersonDocument); |
| | | mainActivity().fragment_face_list.findNextPosition(selectedPersonDocument); |
| | | } |
| | | if (mainActivity().currentFragment == mainActivity().fragment_su_logged_nic_wait_detail |
| | | || mainActivity().currentFragment == mainActivity().fragment_su_logged_ic_compare_success |
| | |
| | | } else { |
| | | mainActivity().showFragment(mainActivity().fragment_su_logged_nic_wait_face); |
| | | } |
| | | ((PersonManageFragment) mainActivity().fragment_person_manage).personChanged(null, false); |
| | | mainActivity().fragment_person_manage.personChanged(null, false); |
| | | } |
| | | confirmDialog.dismiss(); |
| | | } |
| | |
| | | |
| | | //取消 |
| | | public void giveUpSave() { |
| | | ((MenuFragment) mainActivity().fragment_menu).person_add(); |
| | | mainActivity().fragment_menu.person_add(); |
| | | } |
| | | |
| | | |
| | | public void personChanged(ModelAdapter personDocument) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).clearInPutText(); |
| | | mainActivity().fragment_face_detail.clearInPutText(); |
| | | personChanged(personDocument, true); |
| | | } |
| | | |
| | |
| | | showHotPoint(personDocument); |
| | | if (personDocument == null) { |
| | | if (reloadFaceList) { |
| | | ((FaceListFragment) mainActivity().fragment_face_list).findPersonList(null, null); |
| | | mainActivity().fragment_face_list.findPersonList(null, null); |
| | | } |
| | | } else { |
| | | if (selectPerson) { |
| | | ((FaceListFragment) mainActivity().fragment_face_list).findPersonList(personDocument.getString("sign_up_status"), |
| | | mainActivity().fragment_face_list.findPersonList(personDocument.getString("sign_up_status"), |
| | | new HashMap<>(), personDocument); |
| | | } |
| | | all_device = personDocument.getString("all_device"); |
| | |
| | | } |
| | | selectedPersonDocument = personDocument; |
| | | |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).setPerson(personDocument); |
| | | ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setIdentityWithPerson(personDocument != null ? personDocument.getId() : null); |
| | | ((PersonIdentityFragment) (mainActivity().fragment_person_identity)).setDevice(all_device); |
| | | mainActivity().fragment_face_detail.setPerson(personDocument); |
| | | mainActivity().fragment_person_identity.setIdentityWithPerson(personDocument != null ? personDocument.getId() : null); |
| | | mainActivity().fragment_person_identity.setDevice(all_device); |
| | | } |
| | | |
| | | private void showHotPoint(ModelAdapter personDocument) { |
| | | if (personDocument == null || "系统初始化分配".equals(personDocument.getString("sign_up_method"))) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(false); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(false); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(false); |
| | | mainActivity().fragment_face_detail.needPhone(false); |
| | | mainActivity().fragment_face_detail.needName(false); |
| | | mainActivity().fragment_face_detail.needIdNumber(false); |
| | | } else { // 根据当前的注册方式决定是否显示前面的红点,统一导入的暂不处理 |
| | | if ("管理员注册".equals(personDocument.getString("sign_up_method"))) { |
| | | if ("已经验证身份证".equals(personDocument.getString("verify_status")) |
| | | || "未验证身份证".equals(personDocument.getString("verify_status"))) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.adminIDCardSignUpModeNeedPhone()); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(false); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(false); |
| | | mainActivity().fragment_face_detail.needPhone(BaseSettingManager.adminIDCardSignUpModeNeedPhone()); |
| | | mainActivity().fragment_face_detail.needName(false); |
| | | mainActivity().fragment_face_detail.needIdNumber(false); |
| | | } |
| | | if ("不需要验证身份证".equals(personDocument.getString("verify_status"))) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(BaseSettingManager.adminNormalSignUpModeNeedName()); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(BaseSettingManager.adminNormalSignUpModeNeedIDNumber()); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.adminNormalSignUpModeNeedPhone()); |
| | | mainActivity().fragment_face_detail.needName(BaseSettingManager.adminNormalSignUpModeNeedName()); |
| | | mainActivity().fragment_face_detail.needIdNumber(BaseSettingManager.adminNormalSignUpModeNeedIDNumber()); |
| | | mainActivity().fragment_face_detail.needPhone(BaseSettingManager.adminNormalSignUpModeNeedPhone()); |
| | | } |
| | | } |
| | | if ("自助注册".equals(personDocument.getString("sign_up_method"))) { |
| | | if ("已经验证身份证".equals(personDocument.getString("verify_status")) |
| | | || "未验证身份证".equals(personDocument.getString("verify_status"))) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.isAutoSignUpIDCardModeNeedPhone()); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(false); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(false); |
| | | mainActivity().fragment_face_detail.needPhone(BaseSettingManager.isAutoSignUpIDCardModeNeedPhone()); |
| | | mainActivity().fragment_face_detail.needName(false); |
| | | mainActivity().fragment_face_detail.needIdNumber(false); |
| | | } |
| | | if ("不需要验证身份证".equals(personDocument.getString("verify_status"))) { |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needName(BaseSettingManager.isAutoSignUpNotIDCardModeNeedName()); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needIdNumber(BaseSettingManager.isAutoSignUpNotIDCardModeNeedIDNumber()); |
| | | ((FaceDetailFragment) mainActivity().fragment_face_detail).needPhone(BaseSettingManager.isAutoSignUpNotIDCardModeNeedPhone()); |
| | | mainActivity().fragment_face_detail.needName(BaseSettingManager.isAutoSignUpNotIDCardModeNeedName()); |
| | | mainActivity().fragment_face_detail.needIdNumber(BaseSettingManager.isAutoSignUpNotIDCardModeNeedIDNumber()); |
| | | mainActivity().fragment_face_detail.needPhone(BaseSettingManager.isAutoSignUpNotIDCardModeNeedPhone()); |
| | | } |
| | | } |
| | | } |