From 1f107df2664a2f139a9b2b65330e80665f622fdd Mon Sep 17 00:00:00 2001 From: tjxt <1325917080@qq.com> Date: Wed, 31 Jul 2024 15:15:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9--=E6=9C=8D=E5=8A=A1=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bonus/ai/domain/vo/IdCardVo.java | 4 ++ .../ai/service/impl/OcrRecogServiceImpl.java | 58 +++++++++++++------ 2 files changed, 43 insertions(+), 19 deletions(-) diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/IdCardVo.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/IdCardVo.java index f6fbc95..14351b7 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/IdCardVo.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/IdCardVo.java @@ -19,4 +19,8 @@ public class IdCardVo { private String idNumber; } + + public void setData(Data data) { + this.data = data; + } } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/OcrRecogServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/OcrRecogServiceImpl.java index 4044335..c7c3230 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/OcrRecogServiceImpl.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/OcrRecogServiceImpl.java @@ -68,37 +68,56 @@ public class OcrRecogServiceImpl implements IOcrRecogService { ajax.put("data",idCardVo); } catch (Exception e) { log.error("调用服务失败:{}",e); + AiIdcardrecognizeResult aiIdcardrecognizeResult = AiIdcardrecognizeResult.builder() + .serviceId(1L) + .resultStatus("1") + .updateTime(LocalDateTime.now()) + .recognizeTime(LocalDateTime.now()) + .build(); + aiIdcardrecognizeMapper.insert(aiIdcardrecognizeResult); ajax.put("601", "调用服务出错"); + } if (idCardVo.getData() != null) { char ifComplete = '否'; if (idCardVo.getCode() == 20000) { ifComplete = '是'; } - String idNumber = idCardVo.getData().getIdNumber(); - String currentDate = System.currentTimeMillis()+""; - String frontFileName = String.format(FRONT_FILE_NAME_TEMPLATE, idNumber, currentDate); - String backFileName = String.format(BACK_FILE_NAME_TEMPLATE, idNumber, currentDate); - try { - byte[] frontImageBytes = Base64.getDecoder().decode(getfilePath[0]); - byte[] backImageBytes = Base64.getDecoder().decode(getfilePath[1]); - Path frontFilePath = Paths.get(directoryPath, frontFileName); - Path backFilePath = Paths.get(directoryPath, backFileName); - Files.write(frontFilePath, frontImageBytes); - Files.write(backFilePath, backImageBytes); - } catch (IOException e) { - log.error("获取身份证信息出错:{}",e); - ajax.put("602", "获取身份证信息出错"); - e.printStackTrace(); + if (idCardVo.getCode() != 20000 && idCardVo.getCode() != 20001) { + AiIdcardrecognizeResult aiIdcardrecognizeResult = AiIdcardrecognizeResult.builder() + .serviceId(1L) + .resultStatus("1") + .updateTime(LocalDateTime.now()) + .recognizeTime(LocalDateTime.now()) + .build(); + aiIdcardrecognizeMapper.insert(aiIdcardrecognizeResult); + } + else { + String idNumber = idCardVo.getData().getIdNumber(); + String currentDate = System.currentTimeMillis() + ""; + String frontFileName = String.format(FRONT_FILE_NAME_TEMPLATE, idNumber, currentDate); + String backFileName = String.format(BACK_FILE_NAME_TEMPLATE, idNumber, currentDate); + try { + byte[] frontImageBytes = Base64.getDecoder().decode(getfilePath[0]); + byte[] backImageBytes = Base64.getDecoder().decode(getfilePath[1]); + Path frontFilePath = Paths.get(directoryPath, frontFileName); + Path backFilePath = Paths.get(directoryPath, backFileName); + Files.write(frontFilePath, frontImageBytes); + Files.write(backFilePath, backImageBytes); + } catch (IOException e) { + log.error("获取身份证信息出错:{}", e); + ajax.put("602", "获取身份证信息出错"); + e.printStackTrace(); + } + String resultStatus = "0"; + saveRecognitionResult(idCardVo, ifComplete, frontFileName, backFileName, startTime, resultStatus); } - - saveRecognitionResult(idCardVo, ifComplete, frontFileName, backFileName,startTime); } log.info("服务层返回给控制层的数据:{}",ajax); return ajax; } - public String[] convertFilesToBase64(MultipartFile[] files) { + public String[] convertFilesToBase64(MultipartFile[] files) throws IOException { String[] base64Strings = new String[files.length]; for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; @@ -138,7 +157,7 @@ public class OcrRecogServiceImpl implements IOcrRecogService { log.info("获取python服务得到的数据:{}",idCardVo); return idCardVo; } - private void saveRecognitionResult(IdCardVo idCardVo, char ifComplete, String frontFileName, String backFileName,long startTime) { + private void saveRecognitionResult(IdCardVo idCardVo, char ifComplete, String frontFileName, String backFileName,long startTime,String resultStatus) { String idNumber = idCardVo.getData().getIdNumber(); // 从SecurityUtils.getLoginUser()获取登录用户信息 LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -165,6 +184,7 @@ public class OcrRecogServiceImpl implements IOcrRecogService { .invokeIp(IpUtils.getIpAddr(ServletUtils.getRequest())) .updateBy(String.valueOf(loginUser.getUserid())) // 假设getUserid()已返回正确用户ID .updateTime(LocalDateTime.now()) + .resultStatus(resultStatus) .build(); aiIdcardrecognizeMapper.insert(aiIdcardrecognizeResult); }