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/po/AiIdcardrecognizeResult.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/po/AiIdcardrecognizeResult.java index c8ab8fb..1a6f5ea 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/po/AiIdcardrecognizeResult.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/po/AiIdcardrecognizeResult.java @@ -23,7 +23,7 @@ public class AiIdcardrecognizeResult { private String name; /** 用户性别,'0' 表示男性,'1' 表示女性 */ - private char sex; + private String sex; /** 用户民族 */ private String enthnic; 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 b3d281e..f6fbc95 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 @@ -12,7 +12,7 @@ public class IdCardVo { private String issuingAuthority; private String validTime; private String name; - private char gender; + private String gender; private String ethnicity; private String dateOfBirth; private String address; 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..e7a8dc8 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(); @@ -123,7 +124,8 @@ public class OcrRecogServiceImpl implements IOcrRecogService { // 解析转义字符 json = StringEscapeUtils.unescapeJava(json); Gson gson = new Gson(); - return gson.fromJson(json, IdCardVo.class); + IdCardVo idCardVo = gson.fromJson(json, IdCardVo.class);//此方法 如果里面为空 错误 解决 + return idCardVo; } private void saveRecognitionResult(IdCardVo idCardVo, char ifComplete, String frontFileName, String backFileName,long startTime) { String idNumber = idCardVo.getData().getIdNumber(); @@ -150,7 +152,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/java/com/bonus/ai/utils/FileTypeUtils.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/utils/FileTypeUtils.java index 740f8ee..7dcd2af 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/utils/FileTypeUtils.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/utils/FileTypeUtils.java @@ -72,4 +72,4 @@ public class FileTypeUtils { } return strFileExtendName; } -} \ No newline at end of file +} 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}) + + + + + +