From 8b6e1029288df83db9d8759e9c63bcc205522a41 Mon Sep 17 00:00:00 2001 From: purple7433 <743367900@qq.com> Date: Fri, 5 Jan 2024 15:59:06 +0800 Subject: [PATCH 1/2] u --- .../claimAudit/ClaimAuditCmdServiceImpl.java | 125 ++++++++---------- .../command/utils/MyRedisUtil.java | 18 +++ 2 files changed, 72 insertions(+), 71 deletions(-) diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java index 6c80233f..56e43ec9 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java @@ -360,39 +360,12 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { @Override public List<Map<String, Object>> invoiceRecognition(FileEntity fileEntity, InvoiceCmd invoiceCmd) { - //todo 锛�1锛夋牴鎹崟浣嶈幏鍙栨墍鏈夎皟鐢ㄨ瘑鍒殑鏉冮檺鏁版嵁锛岃嫢鏉℃暟=0 杩斿洖鏃犳潈闄� - List<OcrAggregate> aggs = ocrRepository.getAggListByAccountId(invoiceCmd.getAccountId(), MethodEnum.鍙戠エ.val()); - if (aggs.size() <= 0) { - throw ExceptionUtil.getException(ResponseCode.DATA_ACCESS_NOT_FOUND, "璇ヨ处鎴锋棤ocr璇嗗埆鎺ュ彛鏉冮檺!"); - } - String errMsg = ""; - for (OcrAggregate agg : aggs) { - try { - //if (agg.getSupplierEnum().val().equals(SupplierEnum.娴峰ぉ.val())) { - // //todo 娴峰ぉ璇嗗埆 - // log.info("--->>>浠呰瘑鍒皟鐢ㄦ捣澶╂帴鍙�"); - // return transactionService.claimAuditInvoiceTestForSeaSky(fileEntity.getFile(), invoiceCmd); - //} - if (agg.getSupplierEnum().val().equals(SupplierEnum.鎽╂槑.val())) { - //todo 鎽╂槑璇嗗埆 - log.info("--->>>浠呰瘑鍒皟鐢ㄦ懇鏄庢帴鍙�"); - try { - return transactionService.ClaimAuditInvoiceForMoMing(fileEntity, invoiceCmd, fileEntity.getFileName()); - } catch (Exception e) { - errMsg = e.getMessage(); - } - } - //if (agg.getSupplierEnum().val().equals(SupplierEnum.鍚堝悎.val())) { - // //todo 鍚堝悎璇嗗埆 - // log.info("--->>>浠呰瘑鍒皟鐢ㄥ悎鍚堟帴鍙�"); - // return transactionService.ClaimAuditInvoiceForHehe(fileEntity.getFile(), invoiceCmd); - //} - } catch (Exception e) { - log.error(e.getMessage()); - continue; - } + try { + log.info("--->>>浠呰瘑鍒皟鐢ㄦ懇鏄庢帴鍙�"); + return transactionService.ClaimAuditInvoiceForMoMing(fileEntity, invoiceCmd, fileEntity.getFileName()); + } catch (Exception e) { + throw ExceptionUtil.getException(null, "鎽╂槑璇嗗埆鍙戠エ鍙戠敓寮傚父锛�" + e.getMessage()); } - throw ExceptionUtil.getException(null, "鎽╂槑璇嗗埆鍙戠エ鍙戠敓寮傚父锛�" + errMsg); } @Override @@ -602,53 +575,63 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { String recognizeSplitUrl = jsonObject.getString("recognizeSplitUrl"); //todo 鏍规嵁ocrId鏌ヨ tb_ocr_config 琛ㄧ殑鏁版嵁 long t00 = System.currentTimeMillis(); - JSONObject tokenParam = new JSONObject(); - tokenParam.put("appId", ocrAggregate.getAppKey()); - tokenParam.put("appSecret", ocrAggregate.getSecret()); - String tokenHttpPost = HttpsUtils.sendPostOk(tokenUrl, tokenParam.toJSONString(), ocrAggregate.getHeader()); - if (!configAgg.getSuccessCode().equals(JSONObject.parseObject(tokenHttpPost).get(configAgg.getCode()).toString())) { - throw ExceptionUtil.getException(ResponseCode.REQUEST_EXCEPTION, "鎽╂槑鎺ュ彛璋冪敤澶辫触:token鑾峰彇澶辫触:" + tokenHttpPost); + long t0 = t00; + String token = MyRedisUtil.getStringFromRedis("momingToken"); + if (ObjectUtil.isEmpty(token)) { + JSONObject tokenParam = new JSONObject(); + tokenParam.put("appId", ocrAggregate.getAppKey()); + tokenParam.put("appSecret", ocrAggregate.getSecret()); + String tokenHttpPost = HttpsUtils.sendPostOk(tokenUrl, tokenParam.toJSONString(), ocrAggregate.getHeader()); + if (!configAgg.getSuccessCode().equals(JSONObject.parseObject(tokenHttpPost).get(configAgg.getCode()).toString())) { + throw ExceptionUtil.getException(ResponseCode.REQUEST_EXCEPTION, "鎽╂槑鎺ュ彛璋冪敤澶辫触:token鑾峰彇澶辫触:" + tokenHttpPost); + } + t0 = System.currentTimeMillis(); + log.info("-|-鎽╂槑鑾峰彇token鑰楄垂鏃堕棿锛�" + (t0 - t00) / 1000.0 + " 绉�"); + //todo 3銆佽皟鐢ㄤ笂浼犲浘鐗囨帴鍙o細 + token = JSON.parseObject(tokenHttpPost).getString("result"); + MyRedisUtil.setString2Redis("momingToken", token, 3600); } - long t0 = System.currentTimeMillis(); - log.info("-|-鎽╂槑鑾峰彇token鑰楄垂鏃堕棿锛�" + (t0 - t00) / 1000.0 + " 绉�"); - //todo 3銆佽皟鐢ㄤ笂浼犲浘鐗囨帴鍙o細 - String token = JSON.parseObject(tokenHttpPost).getString("result"); Map<String, String> header = ocrAggregate.getHeader(); header.put("Open-Access-Token", token); - String uploadHttpPost = null; - String errMsg = ""; - try { - long t01 = System.currentTimeMillis(); - log.info("-|-鎽╂槑涓婁紶鍥剧墖multipartFileToFile杞崲鏃堕棿锛�" + (t01 - t0) / 1000.0 + " 绉�"); - Map<String, String> headerFile = new LinkedHashMap<>(); - headerFile.put("Open-Access-Token", token); + + String imagePath = MyRedisUtil.getStringFromRedis("momingImagePath_" + fileEntity.getHashId()); + if (ObjectUtil.isEmpty(imagePath)) { + String uploadHttpPost = null; + String errMsg = ""; try { - uploadHttpPost = HttpsUtils.sendPostOk(uploadUrl, fileEntity.getFile(), headerFile, fileEntity.getFileName()); - } catch (Exception ex) { - ex.printStackTrace(); - errMsg = ex.getMessage(); - uploadHttpPost = HttpRequest.post(uploadUrl) - .header("Open-Access-Token", token) - .form("file", fileEntity.getFile()) - .execute() - .body(); + long t01 = System.currentTimeMillis(); + log.info("-|-鎽╂槑涓婁紶鍥剧墖multipartFileToFile杞崲鏃堕棿锛�" + (t01 - t0) / 1000.0 + " 绉�"); + Map<String, String> headerFile = new LinkedHashMap<>(); + headerFile.put("Open-Access-Token", token); + try { + uploadHttpPost = HttpsUtils.sendPostOk(uploadUrl, fileEntity.getFile(), headerFile, fileEntity.getFileName()); + } catch (Exception ex) { + ex.printStackTrace(); + errMsg = ex.getMessage(); + uploadHttpPost = HttpRequest.post(uploadUrl) + .header("Open-Access-Token", token) + .form("file", fileEntity.getFile()) + .execute() + .body(); + } + long t02 = System.currentTimeMillis(); + log.info("-|-鎽╂槑涓婁紶鍥剧墖post璇锋眰鑰楄垂鏃堕棿锛�" + (t02 - t01) / 1000.0 + " 绉�"); + } catch (Exception e) { + throw ExceptionUtil.getException(null, "-|-鎽╂槑涓婁紶鍥剧墖澶辫触1:" + errMsg + "-|-鎽╂槑涓婁紶鍥剧墖澶辫触2:" + e.getMessage()); } - long t02 = System.currentTimeMillis(); - log.info("-|-鎽╂槑涓婁紶鍥剧墖post璇锋眰鑰楄垂鏃堕棿锛�" + (t02 - t01) / 1000.0 + " 绉�"); - } catch (Exception e) { - throw ExceptionUtil.getException(null, "-|-鎽╂槑涓婁紶鍥剧墖澶辫触1:" + errMsg + "-|-鎽╂槑涓婁紶鍥剧墖澶辫触2:" + e.getMessage()); - } - long t1 = System.currentTimeMillis(); - log.info("-|-鎽╂槑涓婁紶鍥剧墖鑰楄垂鏃堕棿锛�" + (t1 - t0) / 1000.0 + " 绉�"); - try { - if (!"0".equals(JSONObject.parseObject(uploadHttpPost).get(configAgg.getCode()).toString())) { + long t1 = System.currentTimeMillis(); + log.info("-|-鎽╂槑涓婁紶鍥剧墖鑰楄垂鏃堕棿锛�" + (t1 - t0) / 1000.0 + " 绉�"); + try { + if (!"0".equals(JSONObject.parseObject(uploadHttpPost).get(configAgg.getCode()).toString())) { + throw ExceptionUtil.getException(ResponseCode.REQUEST_EXCEPTION, "鎽╂槑鎺ュ彛璋冪敤澶辫触:鎽╂槑涓婁紶鍥剧墖澶辫触:" + uploadHttpPost); + } + } catch (Exception e) { throw ExceptionUtil.getException(ResponseCode.REQUEST_EXCEPTION, "鎽╂槑鎺ュ彛璋冪敤澶辫触:鎽╂槑涓婁紶鍥剧墖澶辫触:" + uploadHttpPost); } - } catch (Exception e) { - throw ExceptionUtil.getException(ResponseCode.REQUEST_EXCEPTION, "鎽╂槑鎺ュ彛璋冪敤澶辫触:鎽╂槑涓婁紶鍥剧墖澶辫触:" + uploadHttpPost); + //todo 4銆佽皟鐢ㄨ瘑鍒帴鍙o細 + imagePath = JSON.parseObject(uploadHttpPost).getString("message"); + MyRedisUtil.setString2Redis("momingImagePath_" + fileEntity.getHashId(), imagePath, 3600 * 24); } - //todo 4銆佽皟鐢ㄨ瘑鍒帴鍙o細 - String imagePath = JSON.parseObject(uploadHttpPost).getString("message"); fileEntity.setMomingFileName(token, imagePath); log.info("鎽╂槑鏂囦欢鍦板潃锛�" + imagePath); if (isUploadOnly) { diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/utils/MyRedisUtil.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/utils/MyRedisUtil.java index 6bb698b8..ac1f9207 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/utils/MyRedisUtil.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/utils/MyRedisUtil.java @@ -27,6 +27,13 @@ public class MyRedisUtil { } } + public static void setString2Redis(String key, String str, int seconds) { + var cmd = RedisUtil.getRedisCommand(); + if (cmd != null) { + cmd.set(key, str, seconds); + } + } + public static <T> List<T> getObjectListFromRedis(String key, Class<T> clazz) { List<T> itemList = new ArrayList<>(); var cmd = RedisUtil.getRedisCommand(); @@ -48,4 +55,15 @@ public class MyRedisUtil { } return item; } + + public static String getStringFromRedis(String key) { + String item = null; + var cmd = RedisUtil.getRedisCommand(); + if (cmd != null) { + if (cmd.exists(key)) { + item = cmd.get(key).toString(); + } + } + return item; + } } \ No newline at end of file -- GitLab From 765f32ac827a402294e30ff6474f322070239f03 Mon Sep 17 00:00:00 2001 From: purple7433 <743367900@qq.com> Date: Mon, 8 Jan 2024 10:38:46 +0800 Subject: [PATCH 2/2] u --- .../claimAudit/ClaimAuditCmdServiceImpl.java | 53 +++++++++---------- .../InvoiceSettingRepositoryImpl.java | 40 ++++++++------ .../location/LocationRepositoryImpl.java | 15 ++++-- 3 files changed, 58 insertions(+), 50 deletions(-) diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java index 56e43ec9..6ea65b20 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/application/command/claimAudit/ClaimAuditCmdServiceImpl.java @@ -1213,7 +1213,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { return fpEwmInfo; } - private List<Map<String, Object>> Step6Excute(Long ocrId, String ocrResult, Long accountId, String invoiceName, MultipartFile file) { + private List<Map<String, Object>> Step6Excute(Long ocrId, String ocrResult, Long accountId, String invoiceName, MultipartFile file, List<InvoiceSettingAggregate> loopList) { List<Map<String, Object>> list = new ArrayList<>(); JSONObject ocrResultJO = JSON.parseObject(ocrResult); JSONArray arr = ocrResultJO.getJSONArray("object_list"); @@ -1224,7 +1224,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { JSONObject temJson = new JSONObject(); temJson.put("object_list", ja); String invoiceNameNew = ClaimAuditUtil.getJsonValue(temJson.toJSONString(), "object_list$.type_description"); - Map<String, Object> map = Step6(ocrId, temJson.toJSONString(), accountId, invoiceNameNew, file); + Map<String, Object> map = Step6(ocrId, temJson.toJSONString(), accountId, invoiceNameNew, file, loopList); list.add(map); } return list; @@ -1255,13 +1255,22 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { if (jsonArray.size() == 0) { throw ExceptionUtil.getException(null, "鎽╂槑璇嗗埆涓嶅埌鍙戠エ鍐呭锛�"); } + List<InvoiceSettingAggregate> loopList = new ArrayList<>(); + List<InvoiceSettingAggregate> fjList = invoiceSettingRepository.listByInvoiceType("闄勪欢绫�"); + if (!Objects.isNull(fjList)) { + loopList.addAll(fjList); + } + List<InvoiceSettingAggregate> nzdList = invoiceSettingRepository.listByInvoiceType("鍐呰浆鍗�"); + if (!Objects.isNull(nzdList)) { + loopList.addAll(nzdList); + } for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); JSONArray ja = new JSONArray(); ja.add(jsonObject); ocrResultJO.getJSONArray("result").getJSONObject(0).put("invoices", ja); String invoiceNameNew = ClaimAuditUtil.getJsonValueForMoMing(ocrResultJO.toJSONString(), "result$.invoices$.fpType"); - Map<String, Object> map = Step6ForMoMing(ocrId, ocrResultJO.toJSONString(), accountId, invoiceNameNew, configAgg); + Map<String, Object> map = Step6ForMoMing(ocrId, ocrResultJO.toJSONString(), jsonObject, invoiceNameNew, configAgg, loopList); if (!Objects.isNull(map)) { list.add(map); } @@ -1272,7 +1281,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { /** * todo 閫氬線鏂囨湰璇嗗埆鎺ュ彛 */ - private Map<String, Object> universalTextRecognition(Long accountId, String invoiceName, MultipartFile file, String ocrOriginResult, Long ocrId, String source) { + private Map<String, Object> universalTextRecognition(Long accountId, String invoiceName, MultipartFile file, String ocrOriginResult, Long ocrId, String source, List<InvoiceSettingAggregate> loopList) { //todo 1銆佺エ鎹檮浠惰瘑鍒� OcrAggregate ocrAggregate = ocrRepository.getAggByAccountId(accountId, MethodEnum.绁ㄦ嵁闄勪欢璇嗗埆.val(), SupplierEnum.鍚堝悎.val()); if (Objects.isNull(ocrAggregate)) { @@ -1304,14 +1313,14 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { //todo 锛�4锛夎褰曠涓夋柟ocr鎺ュ彛鐨勮皟鐢紝骞跺瓨涓嬭皟鐢ㄧ粨鏋� Step5(accountId, ocrAggregate.getId(), hashId, ocrResult); //todo 鑾峰彇json涓殑绁ㄧ淇℃伅锛屽緱鍒扮エ绉嶅瓧绗︿覆鏁扮粍 - return excuteResult(ocrResult, image, ocrId, source); + return excuteResult(ocrResult, image, ocrId, source, loopList); } else { //todo 6. 杩斿洖鐨刯son锛岃浆鍖栦负鏍囧噯鏍煎紡鐨刯son,灏嗘柟娉曟娊鍑烘潵 - return excuteResult(invoiceAgg.getInvoiceVo().getContent(), image, ocrId, source); + return excuteResult(invoiceAgg.getInvoiceVo().getContent(), image, ocrId, source, loopList); } } - private Map<String, Object> universalTextRecognition(Long accountId, String invoiceName, File file, String ocrOriginResult, Long ocrId, String source) { + private Map<String, Object> universalTextRecognition(Long accountId, String invoiceName, File file, String ocrOriginResult, Long ocrId, String source, List<InvoiceSettingAggregate> loopList) { //todo 1銆佺エ鎹檮浠惰瘑鍒� OcrAggregate ocrAggregate = ocrRepository.getAggByAccountId(accountId, MethodEnum.绁ㄦ嵁闄勪欢璇嗗埆.val(), SupplierEnum.鍚堝悎.val()); if (Objects.isNull(ocrAggregate)) { @@ -1338,10 +1347,10 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { //todo 锛�4锛夎褰曠涓夋柟ocr鎺ュ彛鐨勮皟鐢紝骞跺瓨涓嬭皟鐢ㄧ粨鏋� Step5(accountId, ocrAggregate.getId(), hashId, ocrResult); //todo 鑾峰彇json涓殑绁ㄧ淇℃伅锛屽緱鍒扮エ绉嶅瓧绗︿覆鏁扮粍 - return excuteResult(ocrResult, image, ocrId, source); + return excuteResult(ocrResult, image, ocrId, source, loopList); } else { //todo 6. 杩斿洖鐨刯son锛岃浆鍖栦负鏍囧噯鏍煎紡鐨刯son,灏嗘柟娉曟娊鍑烘潵 - return excuteResult(invoiceAgg.getInvoiceVo().getContent(), image, ocrId, source); + return excuteResult(invoiceAgg.getInvoiceVo().getContent(), image, ocrId, source, loopList); } } @@ -1533,12 +1542,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { * * @return */ - private Map<String, Object> excuteResult(String ocrResult, String image, Long ocrId, String source) { - List<InvoiceSettingAggregate> aggs = invoiceSettingRepository.listByInvoiceType("闄勪欢绫�"); - aggs.addAll(invoiceSettingRepository.listByInvoiceType("鍐呰浆鍗�")); - if (ObjectUtils.isEmpty(aggs)) { - throw ExceptionUtil.getException(null, "绁ㄧ璁剧疆涓笉瀛樺湪闄勪欢绁�!"); - } + private Map<String, Object> excuteResult(String ocrResult, String image, Long ocrId, String source, List<InvoiceSettingAggregate> aggs) { //todo 闇€姹�12935 绁ㄦ嵁鎶ごfpTitle String fpTitle = ClaimAuditUtil.getJsonValueForMoMing(ocrResult, "result$.invoices$.fpTitle"); String fpType = ClaimAuditUtil.getJsonValueForMoMing(ocrResult, "result$.invoices$.fpType"); @@ -1632,7 +1636,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { * * @return */ - private Map<String, Object> Step6(Long ocrId, String ocrResult, Long accountId, String invoiceName, MultipartFile file) { + private Map<String, Object> Step6(Long ocrId, String ocrResult, Long accountId, String invoiceName, MultipartFile file, List<InvoiceSettingAggregate> loopList) { //todo 鏍规嵁ocrId鏌ヨ tb_ocr_config 琛ㄧ殑鏁版嵁 OcrConfigAggregate configAgg = configRepository.findByOcrId(ocrId); if (Objects.isNull(configAgg)) { @@ -1646,7 +1650,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { //if (invoiceName.equals("鍏朵粬") || invoiceName.equals("鏁欒偛璐规敹鎹�")){ if (Objects.isNull(agg) || StringUtils.isEmpty(dataIsExist)) { //todo 璋冪敤閫氱敤鏂囨湰璇嗗埆鎺ュ彛 - return universalTextRecognition(accountId, invoiceName, file, ocrResult, ocrId, SourceEnum.鍚堝悎璇嗗埆.val()); + return universalTextRecognition(accountId, invoiceName, file, ocrResult, ocrId, SourceEnum.鍚堝悎璇嗗埆.val(), loopList); } else { //todo 浠呰瘑鍒暟鎹鐞� Map<String, Object> outMap = new HashMap<>(); @@ -2008,7 +2012,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { } } - private Map<String, Object> Step6ForMoMing(Long ocrId, String ocrResult, Long accountId, String invoiceName, OcrConfigAggregate configAgg) { + private Map<String, Object> Step6ForMoMing(Long ocrId, String ocrResult, JSONObject invoiceJsonObject, String invoiceName, OcrConfigAggregate configAgg, List<InvoiceSettingAggregate> loopList) { //todo 鑾峰彇绁ㄧ灞炴€ц缃甿ap key鏄睘鎬х紪鐮侊紝value鏄璞� 閫昏緫锛氭牴鎹エ绉嶅悕绉版煡璇㈠叧鑱旂殑绁ㄧ灞炴€� invoiceName = ClaimAuditUtil.getBillType(configAgg.getBillTypeMap(), invoiceName); String fpTitle = ClaimAuditUtil.getJsonValueForMoMing(ocrResult, "result$.invoices$.fpTitle"); @@ -2092,15 +2096,6 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { String fjTitleFinal = ""; if (invoiceName.equals("鍏朵粬鍙戠エ") || invoiceName.equals("鏈煡")) { //todo 0206闇€姹� 寰幆绁ㄧ澶х被鏄� 闄勪欢绫荤殑绁ㄦ嵁锛屾瘮杈冩姮澶村尮閰嶅埌瀵瑰簲绁ㄧ - List<InvoiceSettingAggregate> loopList = new ArrayList<>(); - List<InvoiceSettingAggregate> fjList = invoiceSettingRepository.listByInvoiceType("闄勪欢绫�"); - if (!Objects.isNull(fjList)) { - loopList.addAll(fjList); - } - List<InvoiceSettingAggregate> nzdList = invoiceSettingRepository.listByInvoiceType("鍐呰浆鍗�"); - if (!Objects.isNull(nzdList)) { - loopList.addAll(nzdList); - } if (invoiceName.equals("鍏朵粬鍙戠エ") && fpTitle.contains("杩愬崟鏄庣粏") && StringUtils.isEmpty(image)) { invoiceName = "蹇€掕繍鍗曟槑缁�"; } @@ -2148,7 +2143,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { //todo 闇€姹�3443 鍥藉绁ㄦ嵁-寮€妯″奖鍍忓鎺� if ((invoiceName.equals("鏈煡") || invoiceName.equals("鍏朵粬鍙戠エ")) && ocrId != 8L) { //todo 璋冪敤閫氱敤鏂囨湰璇嗗埆鎺ュ彛;璇佹槑鏄崟寮犵エ鎹潪鍒囧壊鐨勭エ鎹� 锛岃蛋鏈煡绁ㄧ - Map<String, Object> exceteResultMap = excuteResult(ocrResult, image, ocrId, SourceEnum.鎽╂槑璇嗗埆.val()); + Map<String, Object> exceteResultMap = excuteResult(ocrResult, image, ocrId, SourceEnum.鎽╂槑璇嗗埆.val(), loopList); return exceteResultMap; } else { //todo 浠呰瘑鍒暟鎹鐞� @@ -2161,7 +2156,7 @@ public class ClaimAuditCmdServiceImpl implements ClaimAuditCmdService { if (ocrId == 8L) { agg = invoiceSettingRepository.findByInvoiceName("鏈煡绁ㄧ"); } else { - return excuteResult(ocrResult, image, ocrId, SourceEnum.鎽╂槑璇嗗埆.val()); + return excuteResult(ocrResult, image, ocrId, SourceEnum.鎽╂槑璇嗗埆.val(), loopList); } } if (ocrId == 8L) { diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/invoiceSetting/InvoiceSettingRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/invoiceSetting/InvoiceSettingRepositoryImpl.java index f449ad19..ff453dce 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/invoiceSetting/InvoiceSettingRepositoryImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/invoiceSetting/InvoiceSettingRepositoryImpl.java @@ -1,9 +1,11 @@ package com.seasky.seaskyocr.infrastructure.repository.invoiceSetting; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.seasky.core.ddd.base.BaseRepository; import com.seasky.core.ddd.base.DomainKeysMap; import com.seasky.core.util.ExceptionUtil; +import com.seasky.seaskyocr.application.command.utils.MyRedisUtil; import com.seasky.seaskyocr.domain.aggregate.invoiceSetting.InvoiceSettingAggregate; import com.seasky.seaskyocr.domain.aggregate.invoiceSetting.InvoiceSettingRepository; import com.seasky.seaskyocr.infrastructure.dataobject.po.invoicePropertySetting.InvoicePropertySettingPo; @@ -85,25 +87,29 @@ public class InvoiceSettingRepositoryImpl extends BaseRepository<InvoiceSettingA @Override public InvoiceSettingAggregate findByInvoiceName(String invoiceName) { - List<InvoiceSettingPo> invoiceSettingPos = mapper.selectList(new QueryWrapper<>(InvoiceSettingPo.builder().invoiceName(invoiceName).build())); - if (invoiceSettingPos.size() <= 0){ - return null; - } - if (invoiceSettingPos.size() > 1){ - throw ExceptionUtil.getException(null,"绁ㄧ鍚嶇О閲嶅锛�"); - } - String propertyList = invoiceSettingPos.get(0).getPropertyList(); - List<InvoicePropertySettingPo> invoicePropertySettingPos = new ArrayList<>(); - if (!StringUtils.isEmpty(propertyList)){ - List<String> propertyIdList = Arrays.asList(propertyList.split(",")); - if (propertyIdList.size() > 0){ - List<Long> collect = propertyIdList.stream().map(Long::parseLong).collect(Collectors.toList()); - QueryWrapper<InvoicePropertySettingPo> wrapper = new QueryWrapper<>(); - wrapper.in("id",collect); - invoicePropertySettingPos = propertyMapper.selectList(wrapper); + InvoiceSettingAggregate invoiceSettingAggregate = MyRedisUtil.getObjectFromRedis("findByInvoiceName_" + invoiceName, InvoiceSettingAggregate.class); + if (ObjectUtil.isNull(invoiceSettingAggregate)) { + List<InvoiceSettingPo> invoiceSettingPos = mapper.selectList(new QueryWrapper<>(InvoiceSettingPo.builder().invoiceName(invoiceName).build())); + if (invoiceSettingPos.size() <= 0) { + return null; + } + if (invoiceSettingPos.size() > 1) { + throw ExceptionUtil.getException(null, "绁ㄧ鍚嶇О閲嶅锛�"); + } + String propertyList = invoiceSettingPos.get(0).getPropertyList(); + List<InvoicePropertySettingPo> invoicePropertySettingPos = new ArrayList<>(); + if (!StringUtils.isEmpty(propertyList)) { + List<String> propertyIdList = Arrays.asList(propertyList.split(",")); + if (propertyIdList.size() > 0) { + List<Long> collect = propertyIdList.stream().map(Long::parseLong).collect(Collectors.toList()); + QueryWrapper<InvoicePropertySettingPo> wrapper = new QueryWrapper<>(); + wrapper.in("id", collect); + invoicePropertySettingPos = propertyMapper.selectList(wrapper); + } } + invoiceSettingAggregate = InvoiceSettingConvert.toAgg(invoiceSettingPos.get(0), invoicePropertySettingPos); + MyRedisUtil.setObject2Redis("findByInvoiceName_" + invoiceName, invoiceSettingAggregate, 3600 * 24); } - InvoiceSettingAggregate invoiceSettingAggregate = InvoiceSettingConvert.toAgg(invoiceSettingPos.get(0), invoicePropertySettingPos); return invoiceSettingAggregate; } diff --git a/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/location/LocationRepositoryImpl.java b/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/location/LocationRepositoryImpl.java index f1753f1b..016581e5 100644 --- a/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/location/LocationRepositoryImpl.java +++ b/ServiceSite/src/main/java/com/seasky/seaskyocr/infrastructure/repository/location/LocationRepositoryImpl.java @@ -1,8 +1,10 @@ package com.seasky.seaskyocr.infrastructure.repository.location; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.seasky.core.ddd.base.BaseRepository; import com.seasky.core.ddd.base.DomainKeysMap; +import com.seasky.seaskyocr.application.command.utils.MyRedisUtil; import com.seasky.seaskyocr.domain.aggregate.location.LocationAggregate; import com.seasky.seaskyocr.domain.aggregate.location.LocationRepository; import com.seasky.seaskyocr.infrastructure.dataobject.po.location.LocationPo; @@ -46,11 +48,16 @@ public class LocationRepositoryImpl extends BaseRepository<LocationAggregate> im @Override public String findNameByCode(String locationCode) { - LocationPo locationPo = mapper.selectOne(new QueryWrapper<>(LocationPo.builder().locationCode(locationCode).build())); - if (Objects.isNull(locationPo)){ - return null; + String locationName = MyRedisUtil.getStringFromRedis("findNameByCode_" + locationCode); + if (ObjectUtil.isEmpty(locationName)) { + LocationPo locationPo = mapper.selectOne(new QueryWrapper<>(LocationPo.builder().locationCode(locationCode).build())); + if (Objects.isNull(locationPo)) { + return null; + } + locationName = locationPo.getLocationName(); + MyRedisUtil.setString2Redis("findNameByCode_" + locationCode, locationName, 3600 * 24); } - return locationPo.getLocationName(); + return locationName; } @Override -- GitLab