From 260dd6fe156265832544715192ce1491e9c2afd6 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 26 六月 2026 13:41:13 +0800
Subject: [PATCH] fix(stock): 解决库存管理中的重复键异常问题 - 在采购台账服务中添加净合同金额字段设置 - 在销售台账服务中添加净合同金额字段设置 - 在入库记录服务中为库存插入操作添加重复键异常处理 - 在入库记录服务中为非库存插入操作添加重复键异常处理 - 在库存服务中为库存插入操作添加重复键异常处理 - 统一处理数据库唯一键约束冲突,避免系统错误

---
 src/main/java/com/ruoyi/ai/service/AiFileTextExtractor.java |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/ai/service/AiFileTextExtractor.java b/src/main/java/com/ruoyi/ai/service/AiFileTextExtractor.java
index 82cf1eb..6e37451 100644
--- a/src/main/java/com/ruoyi/ai/service/AiFileTextExtractor.java
+++ b/src/main/java/com/ruoyi/ai/service/AiFileTextExtractor.java
@@ -44,7 +44,17 @@
         if ("xls".equals(ext)) {
             return extractXls(bytes);
         }
+        if (isImage(ext)) {
+            return "鍥剧墖鏂囦欢锛�" + filename + "锛屽凡涓婁紶锛岃缁撳悎鍥剧墖鍐呭璇嗗埆閲囪喘鍗曟嵁銆佽〃鏍煎拰浜у搧鏄庣粏銆�";
+        }
         throw new IllegalArgumentException("鏆備笉鏀寔璇ユ枃浠剁被鍨�: " + ext);
+    }
+
+    public boolean isImageFile(MultipartFile file) {
+        if (file == null) {
+            return false;
+        }
+        return isImage(getExtension(file.getOriginalFilename()));
     }
 
     private String extractDocx(byte[] bytes) throws IOException {
@@ -114,4 +124,8 @@
                 "txt", "md", "markdown", "json", "xml", "yaml", "yml", "csv", "log", "properties",
                 "java", "js", "ts", "vue", "html", "css", "sql", "py", "go", "sh", "bat");
     }
+
+    private boolean isImage(String ext) {
+        return StringUtils.inStringIgnoreCase(ext, "png", "jpg", "jpeg", "webp", "bmp");
+    }
 }

--
Gitblit v1.9.3