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