From 466881654c598a522361ab30160dd453c99ae7d0 Mon Sep 17 00:00:00 2001 From: tjxt <1325917080@qq.com> Date: Mon, 29 Jul 2024 15:13:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E--=E8=BA=AB=E4=BB=BD=E8=AF=81?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E7=BB=93=E6=9E=9C=E7=BB=9F=E8=AE=A1=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/controller/OcrRecogController.java | 35 ++++---- .../bonus/ai/controller/ReportController.java | 54 ++++++++++++ .../com/bonus/ai/domain/vo/ResultCountVo.java | 10 +++ .../ai/mapper/AiIdcardrecognizeMapper.java | 10 ++- .../bonus/ai/service/IOcrRecogService.java | 1 + .../com/bonus/ai/service/IReportService.java | 15 ++++ .../ai/service/impl/OcrRecogServiceImpl.java | 7 +- .../ai/service/impl/ReportServiceImpl.java | 85 +++++++++++++++++++ .../mapper/ai/AiIdcardrecognizeMapper.xml | 61 ++++++++++++- 9 files changed, 256 insertions(+), 22 deletions(-) create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ReportController.java create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/ResultCountVo.java create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IReportService.java create mode 100644 bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/ReportServiceImpl.java diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/OcrRecogController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/OcrRecogController.java index b56a8ab..2bf34aa 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/OcrRecogController.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/OcrRecogController.java @@ -8,7 +8,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import static com.bonus.common.core.web.domain.AjaxResult.error; -import static com.bonus.common.core.web.domain.AjaxResult.success; /** * 文件请求处理 @@ -23,24 +22,28 @@ public class OcrRecogController private IOcrRecogService ocrRecogService; -@PostMapping("/recognition") -public AjaxResult recognition(MultipartFile[] files, String type) { - AjaxResult ajax = AjaxResult.success(); - try { - for (MultipartFile file : files) { - String contentType = file.getContentType(); - if (!FileTypeUtils.FILE_TYPE_PNG.equals(contentType) && !FileTypeUtils.FILE_TYPE_JPEG.equals(contentType) && !FileTypeUtils.FILE_TYPE_PDF.equals(contentType)) { - return error("仅允许导入doc、jpg、png格式文件"); + @PostMapping("/recognition") + public AjaxResult recognition(MultipartFile[] files, String type) { + AjaxResult ajax = AjaxResult.success(); + try { + if(files !=null) { + for (MultipartFile file : files) { + String contentType = file.getContentType(); + if (!FileTypeUtils.FILE_TYPE_PNG.equals(contentType) && !FileTypeUtils.FILE_TYPE_JPEG.equals(contentType) && !FileTypeUtils.FILE_TYPE_PDF.equals(contentType)) { + return error("仅允许导入doc、jpg、png格式文件"); + } + } + ajax = ocrRecogService.recognitionCheck(files, type); + return AjaxResult.success(ajax); + }else { + return error("规范上传文件类型"); } + } catch (Exception e) { + e.printStackTrace(); + return error("数据上传失败!!!"); } - ajax = ocrRecogService.recognitionCheck(files,type); - return success("数据上传成功!!!"); - } catch (Exception e) { - e.printStackTrace(); - return error("数据上传失败!!!"); + } -} - } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ReportController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ReportController.java new file mode 100644 index 0000000..4118235 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ReportController.java @@ -0,0 +1,54 @@ +package com.bonus.ai.controller; +import com.bonus.ai.domain.po.AiIdcardrecognizeResult; +import com.bonus.ai.domain.vo.ResultCountVo; +import com.bonus.ai.service.IReportService; +import com.bonus.common.core.web.domain.AjaxResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; +import static com.bonus.common.core.web.domain.AjaxResult.error; + +@RestController +@RequestMapping("/report") +@Slf4j +public class ReportController { + @Autowired + private IReportService reportService; + @GetMapping("getResultDetails/{serviceid}") + public AjaxResult resultDetails(@PathVariable int serviceid) { + try { + List data = reportService.getResultDetails(serviceid); + return AjaxResult.success(data); + } + catch (Exception e){ + log.error(e.toString(),e); + } + return error("系统错误"); + } + + @GetMapping("getResult/{serviceid}") + public AjaxResult getResult(@PathVariable int serviceid) { + try { + ResultCountVo data = reportService.getResult(serviceid); + return AjaxResult.success(data); + }catch (Exception e) { + log.error(e.toString(),e); + } + return error("系统错误"); + } + + @GetMapping("getLast7Days/{serviceid}") + public AjaxResult last7Days(@PathVariable int serviceid) { + try { + List data = reportService. getLast7Days(serviceid); + return AjaxResult.success(data); + }catch (Exception e) { + log.error(e.toString(),e); + } + return error("系统错误"); + } +} diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/ResultCountVo.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/ResultCountVo.java new file mode 100644 index 0000000..4644810 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/vo/ResultCountVo.java @@ -0,0 +1,10 @@ +package com.bonus.ai.domain.vo; +import lombok.Data; + +@Data +public class ResultCountVo { + private String day; + private int totalNu; + private int correctNu; + private int incorrectNu; +} diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AiIdcardrecognizeMapper.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AiIdcardrecognizeMapper.java index 536abf8..403424f 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AiIdcardrecognizeMapper.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/mapper/AiIdcardrecognizeMapper.java @@ -1,9 +1,11 @@ package com.bonus.ai.mapper; import com.bonus.ai.domain.po.AiIdcardrecognizeResult; -import org.apache.ibatis.annotations.Insert; +import com.bonus.ai.domain.vo.ResultCountVo; import org.springframework.stereotype.Repository; +import java.util.List; + /** * @author wubin */ @@ -11,4 +13,10 @@ import org.springframework.stereotype.Repository; public interface AiIdcardrecognizeMapper { void insert(AiIdcardrecognizeResult aiIdcardrecognizeResult); + + List ResultDetails(); + + ResultCountVo Result(); + + List last7Days(); } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IOcrRecogService.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IOcrRecogService.java index 78c0f3d..b3edb56 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IOcrRecogService.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IOcrRecogService.java @@ -5,4 +5,5 @@ import org.springframework.web.multipart.MultipartFile; public interface IOcrRecogService { AjaxResult recognitionCheck(MultipartFile[] files, String type); + } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IReportService.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IReportService.java new file mode 100644 index 0000000..82c8540 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/IReportService.java @@ -0,0 +1,15 @@ +package com.bonus.ai.service; + +import com.bonus.ai.domain.po.AiIdcardrecognizeResult; +import com.bonus.ai.domain.vo.ResultCountVo; +import com.bonus.common.core.web.domain.AjaxResult; + +import java.util.List; + +public interface IReportService { + List getResultDetails(int serviceid); + + ResultCountVo getResult(int serviceid); + + List getLast7Days(int serviceid); +} 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 09f2216..d4c7a0b 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 @@ -50,7 +50,7 @@ public class OcrRecogServiceImpl implements IOcrRecogService { @Override public AjaxResult recognitionCheck(MultipartFile[] files, String type) { - AjaxResult ajax=null; + AjaxResult ajax=new AjaxResult(); // 记录开始时间 long startTime = System.currentTimeMillis(); IdCardVo idCardVo = null; @@ -59,13 +59,14 @@ public class OcrRecogServiceImpl implements IOcrRecogService { try { getfilePath = convertFilesToBase64(files); idCardVo = processPythonResponse(getfilePath, recogurl); + ajax.put("data",idCardVo); } catch (Exception e) { ajax.put("601", "调用大模型服务出错"); e.printStackTrace(); } if (idCardVo != null) { char ifComplete = '否'; - if (SystemGlobal.IDCARD_RECORD_SUCCESS.equals(idCardVo.getCode())) { + if (idCardVo.getCode() == 20000) { ifComplete = '是'; } String idNumber = idCardVo.getData().getIdNumber(); @@ -150,7 +151,7 @@ public class OcrRecogServiceImpl implements IOcrRecogService { .recognizeTime(LocalDateTime.now()) .responseLong(responseTime) .invokeIp(IpUtils.getIpAddr(ServletUtils.getRequest())) - // .updateBy(loginUser.getUserid()) // 假设getUserid()已返回正确用户ID + // .updateBy(loginUser.getUserid()) // 假设getUserid()已返回正确用户ID .updateTime(LocalDateTime.now()) .build(); aiIdcardrecognizeMapper.insert(aiIdcardrecognizeResult); diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/ReportServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/ReportServiceImpl.java new file mode 100644 index 0000000..d7d0a11 --- /dev/null +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/impl/ReportServiceImpl.java @@ -0,0 +1,85 @@ +package com.bonus.ai.service.impl; + +import com.bonus.ai.domain.po.AiIdcardrecognizeResult; +import com.bonus.ai.domain.vo.ResultCountVo; +import com.bonus.ai.mapper.AiIdcardrecognizeMapper; +import com.bonus.ai.service.IReportService; +import com.bonus.common.core.web.domain.AjaxResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; + +@Service +public class ReportServiceImpl implements IReportService { + + @Autowired + private AiIdcardrecognizeMapper aiIdcardrecognizeMapper; + @Override + public List getResultDetails(int serviceid) { + switch (serviceid){ + //身份证识别 + case 1: + return aiIdcardrecognizeMapper.ResultDetails(); + //发票识别 + case 2: + return null; + //文本识别 + case 3: + return null; + //人脸识别 + case 4: + return null; + //违章识别 + case 5: + return null; + default: + return null; + } + } + + @Override + public ResultCountVo getResult(int serviceid) { + switch (serviceid){ + //身份证识别 + case 1: + return aiIdcardrecognizeMapper.Result(); + //发票识别 + case 2: + return null; + //文本识别 + case 3: + return null; + //人脸识别 + case 4: + return null; + //违章识别 + case 5: + return null; + default: + return null; + } + } + + @Override + public List getLast7Days(int serviceid) { + switch (serviceid){ + //身份证识别 + case 1: + return aiIdcardrecognizeMapper.last7Days(); + //发票识别 + case 2: + return null; + //文本识别 + case 3: + return null; + //人脸识别 + case 4: + return null; + //违章识别 + case 5: + return null; + default: + return null; + } + } +} diff --git a/bonus-modules/bonus-ai/src/main/resources/mapper/ai/AiIdcardrecognizeMapper.xml b/bonus-modules/bonus-ai/src/main/resources/mapper/ai/AiIdcardrecognizeMapper.xml index 234188b..8f9f903 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/ai/AiIdcardrecognizeMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/ai/AiIdcardrecognizeMapper.xml @@ -4,17 +4,74 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + INSERT INTO ai_idcardrecognize_result (service_id, name, sex, enthnic, birthday, address, idcard_number, issuing_authority, idcard_validity, if_complete, frontImge_address, backImg_address, recognize_time, response_long, invoke_ip, - update_by, update_time, del_flag) + update_by, update_time) VALUES (#{serviceId}, #{name}, #{sex}, #{enthnic}, #{birthday}, #{address}, #{idcardNumber}, #{issuingAuthority}, #{idcardValidity}, #{ifComplete}, #{frontImageAddress}, #{backImageAddress}, #{recognizeTime}, #{responseLong}, #{invokeIp}, - #{updateBy}, #{updateTime}, #{delFlag}) + #{updateBy}, #{updateTime}) + + + + + +