删除用户身份证实体,调整与台式机一致
This commit is contained in:
parent
27d8b818c0
commit
f36e6703a3
|
@ -1,181 +0,0 @@
|
|||
package com.dpkj.modules.cardReader.utils;
|
||||
|
||||
import com.dpkj.common.exception.RRException;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* 有关身份证的基本信息
|
||||
*/
|
||||
@Data
|
||||
public class IdCardInfo {
|
||||
|
||||
/**
|
||||
* 名字
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 民族
|
||||
*/
|
||||
private String nation;
|
||||
|
||||
/**
|
||||
* 出生日期
|
||||
*/
|
||||
private LocalDateTime brith;
|
||||
|
||||
/**
|
||||
* 住址
|
||||
*/
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 身份证号码
|
||||
*/
|
||||
private String certNo;
|
||||
|
||||
/**
|
||||
* 签发机关
|
||||
*/
|
||||
private String department;
|
||||
|
||||
/**
|
||||
* 有效日期
|
||||
*/
|
||||
private LocalDateTime effectDate;
|
||||
|
||||
/**
|
||||
* 截至日期
|
||||
*/
|
||||
private LocalDateTime expireDate;
|
||||
|
||||
/**
|
||||
* 外国人姓名
|
||||
*/
|
||||
private String enName;
|
||||
|
||||
/**
|
||||
* 外国人国籍
|
||||
*/
|
||||
private String nationalityCode;
|
||||
|
||||
/**
|
||||
* 注册过的sdk实例
|
||||
*/
|
||||
private CardReaderSdk cardReaderSdk;
|
||||
|
||||
/**
|
||||
* 是否有指纹
|
||||
*/
|
||||
private Boolean fingerExist;
|
||||
|
||||
/**
|
||||
* 指纹数据
|
||||
*/
|
||||
private byte[] fingerData;
|
||||
|
||||
/**
|
||||
* 港澳台通行证号码
|
||||
*/
|
||||
private String TXZHM;
|
||||
|
||||
/**
|
||||
* 港澳台通行证签发次数
|
||||
*/
|
||||
private Integer TXZQFCS;
|
||||
|
||||
/**
|
||||
* 外国人换证次数
|
||||
*/
|
||||
private Integer HZCS;
|
||||
|
||||
|
||||
public IdCardInfo(CardReaderSdk cardReaderSdk, Long handle){
|
||||
if ( cardReaderSdk == null ){
|
||||
throw new RRException("sdk初始化失败");
|
||||
}
|
||||
this.cardReaderSdk = cardReaderSdk;
|
||||
|
||||
byte[] errMsg = new byte[999];
|
||||
cardReaderSdk.PICC_Reader_ReadIDCard(handle, errMsg);
|
||||
try {
|
||||
String gbk = new String(errMsg, "GBK").trim();
|
||||
if (!gbk.equals("")) {
|
||||
throw new RRException();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RRException("身份证信息读取失败");
|
||||
}
|
||||
|
||||
this.name = this.convert2Str(this.cardReaderSdk::GetName, "姓名转换失败");
|
||||
this.sex = this.convert2Str(this.cardReaderSdk::GetSex, "性别转换失败");
|
||||
this.nation = this.convert2Str(this.cardReaderSdk::GetNation, "民族转换失败");
|
||||
String br = this.convert2Str(this.cardReaderSdk::GetBirth, "出生日期转换失败");
|
||||
if ( br != null && br != "" ){
|
||||
this.brith = this.str2LocalDateTime(br);
|
||||
}
|
||||
this.address = this.convert2Str(this.cardReaderSdk::GetAddress, "住址转换失败");
|
||||
this.certNo = this.convert2Str(this.cardReaderSdk::GetCertNo, "身份证转换失败");
|
||||
this.department = this.convert2Str(this.cardReaderSdk::GetDepartemt, "签发机关转换失败");
|
||||
String eff = this.convert2Str(this.cardReaderSdk::GetEffectDate, "过期时间转换失败");
|
||||
if ( eff != null && eff != "" ){
|
||||
this.effectDate = this.str2LocalDateTime(eff);
|
||||
}
|
||||
String exp = this.convert2Str(this.cardReaderSdk::GetExpireDate, "截至日期转换失败");
|
||||
if ( exp != null && exp != "" ){
|
||||
this.expireDate = this.str2LocalDateTime(exp);
|
||||
}
|
||||
this.enName = this.convert2Str(this.cardReaderSdk::GetEnName, "外国人姓名转换失败");
|
||||
this.nationalityCode = this.convert2Str(this.cardReaderSdk::GetNationalityCode, "外国人国籍转换失败");
|
||||
// this.fingerExist = this.cardReaderSdk.IsFingerExist() != 0;
|
||||
// if ( this.fingerExist ) {
|
||||
// this.fingerData = this.convert2Str(this.cardReaderSdk::GetFingerprint, "指纹数据转换失败").getBytes(StandardCharsets.UTF_8);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
private String convert2Str(Consumer<byte[]> function, String tip) {
|
||||
byte[] param = new byte[256];
|
||||
function.accept(param);
|
||||
try {
|
||||
// 检查字节数组是否为空或者只包含值为 0 的字节
|
||||
boolean isAllZero = true;
|
||||
for (byte b : param) {
|
||||
if (b != 0) {
|
||||
isAllZero = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isAllZero) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new String(param, "GBK").trim();
|
||||
}catch (Exception e){
|
||||
throw new RRException(tip == null ? "参数转换失败" : tip);
|
||||
}
|
||||
}
|
||||
|
||||
private LocalDateTime str2LocalDateTime(String str){
|
||||
// 定义日期格式化器
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
// 将字符串解析为 LocalDate
|
||||
LocalDate localDate = LocalDate.parse(str, formatter);
|
||||
// 将 LocalDate 转换为 LocalDateTime,设置时间为 00:00:00
|
||||
return localDate.atStartOfDay();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,147 +0,0 @@
|
|||
package com.dpkj.modules.cardReader.utils;
|
||||
|
||||
import com.dpkj.common.exception.RRException;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* 用户基本信息
|
||||
*/
|
||||
@Data
|
||||
public class UserInfo {
|
||||
|
||||
/**
|
||||
* 名字
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 民族
|
||||
*/
|
||||
private String nation;
|
||||
|
||||
/**
|
||||
* 出生日期
|
||||
*/
|
||||
private String brith;
|
||||
|
||||
/**
|
||||
* 住址
|
||||
*/
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 身份证号码
|
||||
*/
|
||||
private String certNo;
|
||||
|
||||
/**
|
||||
* 签发机关
|
||||
*/
|
||||
private String department;
|
||||
|
||||
/**
|
||||
* 有效日期
|
||||
*/
|
||||
private String effectDate;
|
||||
|
||||
/**
|
||||
* 截至日期
|
||||
*/
|
||||
private String expireDate;
|
||||
|
||||
/**
|
||||
* 外国人姓名
|
||||
*/
|
||||
private String enName;
|
||||
|
||||
/**
|
||||
* 外国人国籍
|
||||
*/
|
||||
private String nationalityCode;
|
||||
|
||||
/**
|
||||
* 注册过的sdk实例
|
||||
*/
|
||||
@JsonIgnore
|
||||
private CardReaderSdk cardReaderSdk;
|
||||
|
||||
/**
|
||||
* 是否有指纹
|
||||
*/
|
||||
private Boolean fingerExist;
|
||||
|
||||
/**
|
||||
* 指纹数据
|
||||
*/
|
||||
private byte[] fingerData;
|
||||
|
||||
/**
|
||||
* 港澳台通行证号码
|
||||
*/
|
||||
private String TXZHM;
|
||||
|
||||
/**
|
||||
* 港澳台通行证签发次数
|
||||
*/
|
||||
private Integer TXZQFCS;
|
||||
|
||||
/**
|
||||
* 外国人换证次数
|
||||
*/
|
||||
private Integer HZCS;
|
||||
|
||||
|
||||
public UserInfo(CardReaderSdk cardReaderSdk){
|
||||
if ( cardReaderSdk == null ){
|
||||
throw new RRException("sdk初始化失败");
|
||||
}
|
||||
this.cardReaderSdk = cardReaderSdk;
|
||||
this.name = this.convert2Str(this.cardReaderSdk::GetName, "姓名转换失败");
|
||||
this.sex = this.convert2Str(this.cardReaderSdk::GetSex, "性别转换失败");
|
||||
this.nation = this.convert2Str(this.cardReaderSdk::GetNation, "民族转换失败");
|
||||
this.brith = this.convert2Str(this.cardReaderSdk::GetBirth, "出生日期转换失败");
|
||||
|
||||
this.address = this.convert2Str(this.cardReaderSdk::GetAddress, "住址转换失败");
|
||||
this.certNo = this.convert2Str(this.cardReaderSdk::GetCertNo, "身份证转换失败");
|
||||
this.department = this.convert2Str(this.cardReaderSdk::GetDepartemt, "签发机关转换失败");
|
||||
this.effectDate = this.convert2Str(this.cardReaderSdk::GetEffectDate, "过期时间转换失败");
|
||||
this.expireDate = this.convert2Str(this.cardReaderSdk::GetExpireDate, "截至日期转换失败");
|
||||
|
||||
this.enName = this.convert2Str(this.cardReaderSdk::GetEnName, "外国人姓名转换失败");
|
||||
this.nationalityCode = this.convert2Str(this.cardReaderSdk::GetNationalityCode, "外国人国籍转换失败");
|
||||
}
|
||||
|
||||
|
||||
private String convert2Str(Consumer<byte[]> function, String tip) {
|
||||
byte[] param = new byte[256];
|
||||
function.accept(param);
|
||||
try {
|
||||
|
||||
return new String(param, "GBK").trim();
|
||||
}catch (Exception e){
|
||||
throw new RRException(tip == null ? "参数转换失败" : tip);
|
||||
}
|
||||
}
|
||||
|
||||
private LocalDateTime str2LocalDateTime(String str){
|
||||
// 定义日期格式化器
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
// 将字符串解析为 LocalDate
|
||||
LocalDate localDate = LocalDate.parse(str, formatter);
|
||||
// 将 LocalDate 转换为 LocalDateTime,设置时间为 00:00:00
|
||||
return localDate.atStartOfDay();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue