打包后调用出错(乱码问题)
This commit is contained in:
parent
aec28f662a
commit
787892924b
|
@ -40,7 +40,9 @@ public class ThirdServiceUtil {
|
||||||
*/
|
*/
|
||||||
public <T> T callDevice(LexMarkDTO lexMarkDTO, Class<T> responseType) {
|
public <T> T callDevice(LexMarkDTO lexMarkDTO, Class<T> responseType) {
|
||||||
try {
|
try {
|
||||||
URL url = new URL(lexMarkServiceIp + ":" + lexMarkServicePort + "/CallDevice");
|
String urlStr = lexMarkServiceIp + ":" + lexMarkServicePort + "/CallDevice";
|
||||||
|
URL url = new URL(urlStr);
|
||||||
|
log.info("开始请求利盟服务,URL: {}, 请求体: {}", urlStr, JSON.toJSONString(lexMarkDTO));
|
||||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||||
connection.setRequestMethod("POST");
|
connection.setRequestMethod("POST");
|
||||||
connection.setDoOutput(true);
|
connection.setDoOutput(true);
|
||||||
|
@ -52,23 +54,28 @@ public class ThirdServiceUtil {
|
||||||
wr.write(input, 0, input.length);
|
wr.write(input, 0, input.length);
|
||||||
}
|
}
|
||||||
int responseCode = connection.getResponseCode();
|
int responseCode = connection.getResponseCode();
|
||||||
|
log.info("利盟服务响应码: {}", responseCode);
|
||||||
if (responseCode != HttpURLConnection.HTTP_OK) {
|
if (responseCode != HttpURLConnection.HTTP_OK) {
|
||||||
throw new RRException("利盟服务请求失败,响应码:" + responseCode);
|
throw new RRException("利盟服务请求失败,响应码:" + responseCode);
|
||||||
}
|
}
|
||||||
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
// 指定编码为 UTF-8
|
||||||
String inputLine;
|
try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) {
|
||||||
StringBuilder response = new StringBuilder();
|
String inputLine;
|
||||||
while ((inputLine = in.readLine()) != null) {
|
StringBuilder response = new StringBuilder();
|
||||||
response.append(inputLine);
|
while ((inputLine = in.readLine()) != null) {
|
||||||
|
response.append(inputLine);
|
||||||
|
}
|
||||||
|
String responseStr = response.toString();
|
||||||
|
log.info("利盟服务响应内容: {}", responseStr);
|
||||||
|
// 将响应 JSON 字符串转换为泛型对象
|
||||||
|
T result = JSON.parseObject(responseStr, responseType);
|
||||||
|
if (result instanceof LexMarkResultVO && ((LexMarkResultVO) result).getResult() != 0) {
|
||||||
|
throw new RRException(result.toString());
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
in.close();
|
|
||||||
// 将响应 JSON 字符串转换为泛型对象
|
|
||||||
T result = JSON.parseObject(response.toString(), responseType);
|
|
||||||
if (result instanceof LexMarkResultVO && ((LexMarkResultVO) result).getResult() != 0) {
|
|
||||||
throw new RRException(result.toString());
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
log.error("利盟服务请求发生异常", e);
|
||||||
if (e instanceof RRException) {
|
if (e instanceof RRException) {
|
||||||
throw new RRException(((RRException) e).getCode(), e.getMessage());
|
throw new RRException(((RRException) e).getCode(), e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,10 @@ public class KeypadServiceImpl implements KeypadService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Result inputData() {
|
public Result inputData() {
|
||||||
|
log.info("开始执行密码输入流程");
|
||||||
|
|
||||||
// 连接数字键盘
|
// 连接数字键盘
|
||||||
|
log.info("准备连接数字键盘设备");
|
||||||
LexMarkDTO connect = new LexMarkDTO();
|
LexMarkDTO connect = new LexMarkDTO();
|
||||||
connect.setDevName(LexMarkConst.ENCRYPTOR);
|
connect.setDevName(LexMarkConst.ENCRYPTOR);
|
||||||
connect.setActionName(MiddlewareFunctionsConst.OPEN_CONNECTION);
|
connect.setActionName(MiddlewareFunctionsConst.OPEN_CONNECTION);
|
||||||
|
@ -47,11 +50,15 @@ public class KeypadServiceImpl implements KeypadService {
|
||||||
connectParam.put("TimeOut", 90000);
|
connectParam.put("TimeOut", 90000);
|
||||||
connectParam.put("ServiceName", LexMarkConst.ENCRYPTOR);
|
connectParam.put("ServiceName", LexMarkConst.ENCRYPTOR);
|
||||||
connect.setParam(connectParam.toJSONString());
|
connect.setParam(connectParam.toJSONString());
|
||||||
|
log.info("调用设备连接方法,参数: {}", connect);
|
||||||
IDCardReadResultVO connectResult = thirdServiceUtil.callDevice(connect, IDCardReadResultVO.class);
|
IDCardReadResultVO connectResult = thirdServiceUtil.callDevice(connect, IDCardReadResultVO.class);
|
||||||
|
log.info("设备连接结果: {}", connectResult);
|
||||||
|
|
||||||
WebSocketClient webSocketClient = null;
|
WebSocketClient webSocketClient = null;
|
||||||
try {
|
try {
|
||||||
if (connectResult.getResult() == 0) {
|
if (connectResult.getResult() == 0) {
|
||||||
|
log.info("数字键盘设备连接成功,准备进行明文输入");
|
||||||
|
|
||||||
// 明文输入
|
// 明文输入
|
||||||
LexMarkDTO plaintext = new LexMarkDTO();
|
LexMarkDTO plaintext = new LexMarkDTO();
|
||||||
plaintext.setDevName(LexMarkConst.ENCRYPTOR);
|
plaintext.setDevName(LexMarkConst.ENCRYPTOR);
|
||||||
|
@ -70,43 +77,58 @@ public class KeypadServiceImpl implements KeypadService {
|
||||||
plaintextParam.put("ActiveKeys", 81919);
|
plaintextParam.put("ActiveKeys", 81919);
|
||||||
plaintextParam.put("TerminateKeys", 1024);
|
plaintextParam.put("TerminateKeys", 1024);
|
||||||
plaintext.setParam(plaintextParam.toJSONString());
|
plaintext.setParam(plaintextParam.toJSONString());
|
||||||
|
log.info("调用明文输入方法,参数: {}", plaintext);
|
||||||
|
|
||||||
// 创建 WebSocket 客户端
|
// 创建 WebSocket 客户端
|
||||||
|
log.info("创建 WebSocket 客户端,连接地址: ws://127.0.0.1:12347");
|
||||||
webSocketClient = new WebSocketClient("ws://127.0.0.1:12347");
|
webSocketClient = new WebSocketClient("ws://127.0.0.1:12347");
|
||||||
|
|
||||||
IDCardReadResultVO plaintextResult = thirdServiceUtil.callDevice(plaintext, IDCardReadResultVO.class);
|
IDCardReadResultVO plaintextResult = thirdServiceUtil.callDevice(plaintext, IDCardReadResultVO.class);
|
||||||
|
log.info("明文输入操作结果: {}", plaintextResult);
|
||||||
|
|
||||||
if (plaintextResult.getResult() == 0) {
|
if (plaintextResult.getResult() == 0) {
|
||||||
|
log.info("明文输入成功,开始等待确认");
|
||||||
try {
|
try {
|
||||||
// 适当延长等待时间
|
// 适当延长等待时间
|
||||||
while (true) {
|
while (true) {
|
||||||
TimeUnit.SECONDS.sleep(1);
|
TimeUnit.SECONDS.sleep(1);
|
||||||
Boolean confirm = webSocketClient.getConfirm();
|
Boolean confirm = webSocketClient.getConfirm();
|
||||||
if (confirm) {
|
if (confirm) {
|
||||||
|
log.info("收到确认信息,结束等待");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
log.error("等待确认信息时被中断", e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
String password = webSocketClient.getPassword();
|
String password = webSocketClient.getPassword();
|
||||||
|
log.info("密码输入完成,密码为: {}", password);
|
||||||
return Result.ok("密码输入完成!", password);
|
return Result.ok("密码输入完成!", password);
|
||||||
} else {
|
} else {
|
||||||
|
log.error("密码输入异常!详情:{}", connectResult.getDesc());
|
||||||
return Result.error("密码输入异常!详情:" + connectResult.getDesc());
|
return Result.error("密码输入异常!详情:" + connectResult.getDesc());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
log.error("数字键盘设备连接失败!详情:{}", connectResult.getDesc());
|
||||||
return Result.error("数字键盘设备连接失败!详情:" + connectResult.getDesc());
|
return Result.error("数字键盘设备连接失败!详情:" + connectResult.getDesc());
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (webSocketClient != null) {
|
if (webSocketClient != null) {
|
||||||
|
log.info("关闭 WebSocket 客户端");
|
||||||
webSocketClient.close();
|
webSocketClient.close();
|
||||||
}
|
}
|
||||||
// 关闭身份证读卡设备
|
// 关闭身份证读卡设备
|
||||||
|
log.info("准备关闭数字键盘设备");
|
||||||
LexMarkDTO close = new LexMarkDTO();
|
LexMarkDTO close = new LexMarkDTO();
|
||||||
close.setDevName(LexMarkConst.ENCRYPTOR);
|
close.setDevName(LexMarkConst.ENCRYPTOR);
|
||||||
close.setCallID(0);
|
close.setCallID(0);
|
||||||
close.setActionName(MiddlewareFunctionsConst.CLOSE_CONNECTION);
|
close.setActionName(MiddlewareFunctionsConst.CLOSE_CONNECTION);
|
||||||
|
log.info("调用设备关闭方法,参数: {}", close);
|
||||||
IDCardReadResultVO closeResult = thirdServiceUtil.callDevice(close, IDCardReadResultVO.class);
|
IDCardReadResultVO closeResult = thirdServiceUtil.callDevice(close, IDCardReadResultVO.class);
|
||||||
|
log.info("设备关闭结果: {}", closeResult);
|
||||||
if (closeResult.getResult() != 0) {
|
if (closeResult.getResult() != 0) {
|
||||||
log.info("数字键盘设备关闭异常!");
|
log.error("数字键盘设备关闭异常!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,9 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
@Override
|
@Override
|
||||||
public Result IDCardReader() {
|
public Result IDCardReader() {
|
||||||
Result result = null;
|
Result result = null;
|
||||||
|
log.info("开始执行身份证读取流程");
|
||||||
try {
|
try {
|
||||||
|
log.info("准备连接非接身份证读卡模块");
|
||||||
// 连接非接身份证读卡模块
|
// 连接非接身份证读卡模块
|
||||||
LexMarkDTO connect = new LexMarkDTO();
|
LexMarkDTO connect = new LexMarkDTO();
|
||||||
connect.setActionName(MiddlewareFunctionsConst.OPEN_CONNECTION);
|
connect.setActionName(MiddlewareFunctionsConst.OPEN_CONNECTION);
|
||||||
|
@ -56,8 +58,11 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
connectParam.put("TimeOut", 30000);
|
connectParam.put("TimeOut", 30000);
|
||||||
connectParam.put("ServiceName", LexMarkConst.ID_CARD_READ);
|
connectParam.put("ServiceName", LexMarkConst.ID_CARD_READ);
|
||||||
connect.setParam(connectParam.toJSONString());
|
connect.setParam(connectParam.toJSONString());
|
||||||
|
log.info("调用设备连接方法,参数: {}", connect);
|
||||||
IDCardReadResultVO connectResult = thirdServiceUtil.callDevice(connect, IDCardReadResultVO.class);
|
IDCardReadResultVO connectResult = thirdServiceUtil.callDevice(connect, IDCardReadResultVO.class);
|
||||||
|
log.info("设备连接结果: {}", connectResult);
|
||||||
if (connectResult.getResult() == 0) {
|
if (connectResult.getResult() == 0) {
|
||||||
|
log.info("设备连接成功,准备读取身份证");
|
||||||
// 身份证读取
|
// 身份证读取
|
||||||
LexMarkDTO read = new LexMarkDTO();
|
LexMarkDTO read = new LexMarkDTO();
|
||||||
read.setActionName(MiddlewareFunctionsConst.ACCEPT_AND_READ_TRACKS);
|
read.setActionName(MiddlewareFunctionsConst.ACCEPT_AND_READ_TRACKS);
|
||||||
|
@ -67,10 +72,14 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
readParam.put("TimeOut", 0);
|
readParam.put("TimeOut", 0);
|
||||||
readParam.put("TrackMap", 776);
|
readParam.put("TrackMap", 776);
|
||||||
read.setParam(readParam.toJSONString());
|
read.setParam(readParam.toJSONString());
|
||||||
|
log.info("调用设备读取方法,参数: {}", read);
|
||||||
IDCardReadResultVO readResult = thirdServiceUtil.callDevice(read, IDCardReadResultVO.class);
|
IDCardReadResultVO readResult = thirdServiceUtil.callDevice(read, IDCardReadResultVO.class);
|
||||||
|
log.info("设备读取结果: {}", readResult);
|
||||||
if (readResult.getResult() == 0) {
|
if (readResult.getResult() == 0) {
|
||||||
|
log.info("身份证读取成功,开始解析身份证信息");
|
||||||
IDCardReadResultVO.Param resultParam = JSON.parseObject(readResult.getParam().toString(), IDCardReadResultVO.Param.class);
|
IDCardReadResultVO.Param resultParam = JSON.parseObject(readResult.getParam().toString(), IDCardReadResultVO.Param.class);
|
||||||
if (resultParam.getResult() == 0) {
|
if (resultParam.getResult() == 0) {
|
||||||
|
log.info("身份证信息解析成功,开始封装用户信息");
|
||||||
UserInfoVO userInfoVO = new UserInfoVO();
|
UserInfoVO userInfoVO = new UserInfoVO();
|
||||||
// 身份证基本信息 解析
|
// 身份证基本信息 解析
|
||||||
String[] array = Stream.of(resultParam.getChipdata().getDatas().split("\\|"))
|
String[] array = Stream.of(resultParam.getChipdata().getDatas().split("\\|"))
|
||||||
|
@ -92,26 +101,34 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
// 反面
|
// 反面
|
||||||
userInfoVO.setBackimage(resultParam.getBackimage().getDatas());
|
userInfoVO.setBackimage(resultParam.getBackimage().getDatas());
|
||||||
result = Result.ok(userInfoVO);
|
result = Result.ok(userInfoVO);
|
||||||
|
log.info("用户信息封装成功,返回结果: {}", result);
|
||||||
} else {
|
} else {
|
||||||
result = Result.error("身份证读取失败!");
|
result = Result.error("身份证读取失败!");
|
||||||
|
log.error("身份证信息解析失败,返回结果: {}", result);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result = Result.error(readResult.getDesc());
|
result = Result.error(readResult.getDesc());
|
||||||
|
log.error("身份证读取失败,错误信息: {}, 返回结果: {}", readResult.getDesc(), result);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result = Result.error(connectResult.getDesc());
|
result = Result.error(connectResult.getDesc());
|
||||||
|
log.error("设备连接失败,错误信息: {}, 返回结果: {}", connectResult.getDesc(), result);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
log.info("准备关闭身份证读卡设备");
|
||||||
// 关闭身份证读卡设备
|
// 关闭身份证读卡设备
|
||||||
LexMarkDTO close = new LexMarkDTO();
|
LexMarkDTO close = new LexMarkDTO();
|
||||||
close.setDevName(LexMarkConst.ID_CARD_READ);
|
close.setDevName(LexMarkConst.ID_CARD_READ);
|
||||||
close.setCallID(0);
|
close.setCallID(0);
|
||||||
close.setActionName(MiddlewareFunctionsConst.CLOSE_CONNECTION);
|
close.setActionName(MiddlewareFunctionsConst.CLOSE_CONNECTION);
|
||||||
|
log.info("调用设备关闭方法,参数: {}", close);
|
||||||
IDCardReadResultVO closeResult = thirdServiceUtil.callDevice(close, IDCardReadResultVO.class);
|
IDCardReadResultVO closeResult = thirdServiceUtil.callDevice(close, IDCardReadResultVO.class);
|
||||||
|
log.info("设备关闭结果: {}", closeResult);
|
||||||
if (closeResult.getResult() != 0) {
|
if (closeResult.getResult() != 0) {
|
||||||
log.info("身份证读卡设备关闭异常!");
|
log.error("身份证读卡设备关闭异常!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log.info("身份证读取流程结束,最终返回结果: {}", result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +145,10 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result SocialSecurityCardReader() {
|
public Result SocialSecurityCardReader() {
|
||||||
|
log.info("开始执行社保卡读取流程");
|
||||||
|
|
||||||
// 社保卡读卡设备连接
|
// 社保卡读卡设备连接
|
||||||
|
log.info("准备连接社保卡读卡设备");
|
||||||
LexMarkDTO connect = new LexMarkDTO();
|
LexMarkDTO connect = new LexMarkDTO();
|
||||||
connect.setActionName(MiddlewareFunctionsConst.OPEN_CONNECTION);
|
connect.setActionName(MiddlewareFunctionsConst.OPEN_CONNECTION);
|
||||||
connect.setCallID(19256);
|
connect.setCallID(19256);
|
||||||
|
@ -137,9 +157,14 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
connectParam.put("TimeOut", 30000);
|
connectParam.put("TimeOut", 30000);
|
||||||
connectParam.put("ServiceName", LexMarkConst.CARD_READER);
|
connectParam.put("ServiceName", LexMarkConst.CARD_READER);
|
||||||
connect.setParam(connectParam.toJSONString());
|
connect.setParam(connectParam.toJSONString());
|
||||||
|
log.info("调用设备连接方法,参数: {}", connect);
|
||||||
IDCardReadResultVO connectResult = thirdServiceUtil.callDevice(connect, IDCardReadResultVO.class);
|
IDCardReadResultVO connectResult = thirdServiceUtil.callDevice(connect, IDCardReadResultVO.class);
|
||||||
|
log.info("设备连接结果: {}", connectResult);
|
||||||
if (connectResult.getResult() == 0) {
|
if (connectResult.getResult() == 0) {
|
||||||
|
log.info("社保卡读卡设备连接成功,准备进卡");
|
||||||
|
|
||||||
// 进卡
|
// 进卡
|
||||||
|
log.info("准备执行进卡操作");
|
||||||
LexMarkDTO enterTheCard = new LexMarkDTO();
|
LexMarkDTO enterTheCard = new LexMarkDTO();
|
||||||
enterTheCard.setActionName(MiddlewareFunctionsConst.ACCEPT_AND_READ_TRACKS);
|
enterTheCard.setActionName(MiddlewareFunctionsConst.ACCEPT_AND_READ_TRACKS);
|
||||||
enterTheCard.setCallID(19256);
|
enterTheCard.setCallID(19256);
|
||||||
|
@ -149,9 +174,14 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
enterTheCardParam.put("TrackMap", 11);
|
enterTheCardParam.put("TrackMap", 11);
|
||||||
enterTheCardParam.put("TimeOut", 0);
|
enterTheCardParam.put("TimeOut", 0);
|
||||||
enterTheCard.setParam(enterTheCardParam.toJSONString());
|
enterTheCard.setParam(enterTheCardParam.toJSONString());
|
||||||
|
log.info("调用进卡方法,参数: {}", enterTheCard);
|
||||||
IDCardReadResultVO enterTheCardResult = thirdServiceUtil.callDevice(enterTheCard, IDCardReadResultVO.class);
|
IDCardReadResultVO enterTheCardResult = thirdServiceUtil.callDevice(enterTheCard, IDCardReadResultVO.class);
|
||||||
|
log.info("进卡操作结果: {}", enterTheCardResult);
|
||||||
if (enterTheCardResult.getResult() == 0) {
|
if (enterTheCardResult.getResult() == 0) {
|
||||||
|
log.info("进卡操作成功,准备上电");
|
||||||
|
|
||||||
// 上电
|
// 上电
|
||||||
|
log.info("准备执行上电操作");
|
||||||
LexMarkDTO powerOn = new LexMarkDTO();
|
LexMarkDTO powerOn = new LexMarkDTO();
|
||||||
powerOn.setActionName(MiddlewareFunctionsConst.CHIPPOWER);
|
powerOn.setActionName(MiddlewareFunctionsConst.CHIPPOWER);
|
||||||
powerOn.setCallID(19256);
|
powerOn.setCallID(19256);
|
||||||
|
@ -160,9 +190,14 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
powerOnParam.put("PsamNo", 1);
|
powerOnParam.put("PsamNo", 1);
|
||||||
powerOnParam.put("ChipAction", 2);
|
powerOnParam.put("ChipAction", 2);
|
||||||
powerOn.setParam(powerOnParam.toJSONString());
|
powerOn.setParam(powerOnParam.toJSONString());
|
||||||
|
log.info("调用上电方法,参数: {}", powerOn);
|
||||||
IDCardReadResultVO powerOnResult = thirdServiceUtil.callDevice(powerOn, IDCardReadResultVO.class);
|
IDCardReadResultVO powerOnResult = thirdServiceUtil.callDevice(powerOn, IDCardReadResultVO.class);
|
||||||
|
log.info("上电操作结果: {}", powerOnResult);
|
||||||
if (powerOnResult.getResult() == 0) {
|
if (powerOnResult.getResult() == 0) {
|
||||||
|
log.info("上电操作成功,准备读取社保卡信息");
|
||||||
|
|
||||||
// 社保卡信息读取
|
// 社保卡信息读取
|
||||||
|
log.info("准备读取社保卡信息");
|
||||||
LexMarkDTO socialSecurityCardReader = new LexMarkDTO();
|
LexMarkDTO socialSecurityCardReader = new LexMarkDTO();
|
||||||
socialSecurityCardReader.setActionName(MiddlewareFunctionsConst.I_READ_CARD_BAS);
|
socialSecurityCardReader.setActionName(MiddlewareFunctionsConst.I_READ_CARD_BAS);
|
||||||
socialSecurityCardReader.setCallID(19256);
|
socialSecurityCardReader.setCallID(19256);
|
||||||
|
@ -170,8 +205,12 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
JSONObject socialSecurityCardReaderParam = new JSONObject();
|
JSONObject socialSecurityCardReaderParam = new JSONObject();
|
||||||
socialSecurityCardReaderParam.put("iType", 3);
|
socialSecurityCardReaderParam.put("iType", 3);
|
||||||
socialSecurityCardReader.setParam(socialSecurityCardReaderParam.toJSONString());
|
socialSecurityCardReader.setParam(socialSecurityCardReaderParam.toJSONString());
|
||||||
|
log.info("调用读取社保卡信息方法,参数: {}", socialSecurityCardReader);
|
||||||
IDCardReadResultVO socialSecurityCardReaderResult = thirdServiceUtil.callDevice(socialSecurityCardReader, IDCardReadResultVO.class);
|
IDCardReadResultVO socialSecurityCardReaderResult = thirdServiceUtil.callDevice(socialSecurityCardReader, IDCardReadResultVO.class);
|
||||||
|
log.info("读取社保卡信息结果: {}", socialSecurityCardReaderResult);
|
||||||
if (socialSecurityCardReaderResult.getResult() == 0) {
|
if (socialSecurityCardReaderResult.getResult() == 0) {
|
||||||
|
log.info("社保卡信息读取成功,开始解析信息");
|
||||||
|
|
||||||
// 社保信息
|
// 社保信息
|
||||||
IDCardReadResultVO.SocialSecurityCard resultParam = JSON.parseObject(socialSecurityCardReaderResult.getParam().toString(), IDCardReadResultVO.SocialSecurityCard.class);
|
IDCardReadResultVO.SocialSecurityCard resultParam = JSON.parseObject(socialSecurityCardReaderResult.getParam().toString(), IDCardReadResultVO.SocialSecurityCard.class);
|
||||||
String[] split = resultParam.getRerurnData().split("\\|");
|
String[] split = resultParam.getRerurnData().split("\\|");
|
||||||
|
@ -188,17 +227,22 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
socialSecurityCardInfoVO.setExpireDate(split[8]);
|
socialSecurityCardInfoVO.setExpireDate(split[8]);
|
||||||
socialSecurityCardInfoVO.setTerminalNumber(split[9]);
|
socialSecurityCardInfoVO.setTerminalNumber(split[9]);
|
||||||
socialSecurityCardInfoVO.setTerminalDeviceNumber(split[10]);
|
socialSecurityCardInfoVO.setTerminalDeviceNumber(split[10]);
|
||||||
|
log.info("社保卡信息解析完成,返回成功结果");
|
||||||
return Result.ok(socialSecurityCardInfoVO);
|
return Result.ok(socialSecurityCardInfoVO);
|
||||||
} else {
|
} else {
|
||||||
|
log.error("社保卡信息读取失败,详情:{}", socialSecurityCardReaderResult.getDesc());
|
||||||
return Result.error("社保卡信息读取失败!详情:" + socialSecurityCardReaderResult.getDesc());
|
return Result.error("社保卡信息读取失败!详情:" + socialSecurityCardReaderResult.getDesc());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
log.error("社保卡读取设备上电失败,详情:{}", powerOnResult.getDesc());
|
||||||
return Result.error("社保卡读取设备上电失败!详情:" + powerOnResult.getDesc());
|
return Result.error("社保卡读取设备上电失败!详情:" + powerOnResult.getDesc());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
log.error("社保卡读取设备进卡失败,详情:{}", enterTheCardResult.getDesc());
|
||||||
return Result.error("社保卡读取设备进卡失败!详情:" + enterTheCardResult.getDesc());
|
return Result.error("社保卡读取设备进卡失败!详情:" + enterTheCardResult.getDesc());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
log.error("社保卡读取设备连接失败,详情:{}", connectResult.getDesc());
|
||||||
return Result.error("社保卡读取设备连接失败!详情:" + connectResult.getDesc());
|
return Result.error("社保卡读取设备连接失败!详情:" + connectResult.getDesc());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,7 +254,10 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Result cardRefund() {
|
public Result cardRefund() {
|
||||||
|
log.info("开始执行社保卡退卡流程");
|
||||||
|
|
||||||
// 社保卡退卡
|
// 社保卡退卡
|
||||||
|
log.info("准备发起社保卡退卡请求");
|
||||||
LexMarkDTO cardRefund = new LexMarkDTO();
|
LexMarkDTO cardRefund = new LexMarkDTO();
|
||||||
cardRefund.setDevName(LexMarkConst.CARD_READER);
|
cardRefund.setDevName(LexMarkConst.CARD_READER);
|
||||||
cardRefund.setCallID(19256);
|
cardRefund.setCallID(19256);
|
||||||
|
@ -219,21 +266,30 @@ public class ReadCardServiceImpl implements ReadCardService {
|
||||||
cardRefundParam.put("position", 1);
|
cardRefundParam.put("position", 1);
|
||||||
cardRefundParam.put("ejectpos", 1);
|
cardRefundParam.put("ejectpos", 1);
|
||||||
cardRefund.setParam(cardRefundParam.toJSONString());
|
cardRefund.setParam(cardRefundParam.toJSONString());
|
||||||
|
log.info("调用设备退卡方法,参数: {}", cardRefund);
|
||||||
IDCardReadResultVO cardRefundResult = thirdServiceUtil.callDevice(cardRefund, IDCardReadResultVO.class);
|
IDCardReadResultVO cardRefundResult = thirdServiceUtil.callDevice(cardRefund, IDCardReadResultVO.class);
|
||||||
|
log.info("设备退卡操作结果: {}", cardRefundResult);
|
||||||
|
|
||||||
if (cardRefundResult.getResult() == 0) {
|
if (cardRefundResult.getResult() == 0) {
|
||||||
|
log.info("社保卡退卡成功,准备关闭社保卡读卡设备");
|
||||||
|
|
||||||
// 退卡成功再关闭社保卡读卡设备
|
// 退卡成功再关闭社保卡读卡设备
|
||||||
LexMarkDTO close = new LexMarkDTO();
|
LexMarkDTO close = new LexMarkDTO();
|
||||||
close.setDevName(LexMarkConst.CARD_READER);
|
close.setDevName(LexMarkConst.CARD_READER);
|
||||||
close.setCallID(0);
|
close.setCallID(0);
|
||||||
close.setActionName(MiddlewareFunctionsConst.CLOSE_CONNECTION);
|
close.setActionName(MiddlewareFunctionsConst.CLOSE_CONNECTION);
|
||||||
|
log.info("调用设备关闭方法,参数: {}", close);
|
||||||
IDCardReadResultVO closeResult = thirdServiceUtil.callDevice(close, IDCardReadResultVO.class);
|
IDCardReadResultVO closeResult = thirdServiceUtil.callDevice(close, IDCardReadResultVO.class);
|
||||||
|
log.info("设备关闭操作结果: {}", closeResult);
|
||||||
|
|
||||||
if (closeResult.getResult() != 0) {
|
if (closeResult.getResult() != 0) {
|
||||||
log.info("社保卡读卡设备关闭异常!");
|
log.error("社保卡读卡设备关闭异常!");
|
||||||
}
|
}
|
||||||
|
log.info("社保卡退卡流程完成,退卡成功");
|
||||||
return Result.ok("退卡成功!");
|
return Result.ok("退卡成功!");
|
||||||
} else {
|
} else {
|
||||||
|
log.error("退卡失败!请联系工作人员!");
|
||||||
return Result.error("退卡失败!请联系工作人员!");
|
return Result.error("退卡失败!请联系工作人员!");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue