From ef77cc9ff685f257e3d51944f98206f4e849829a Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 18 八月 2026 09:34:59 +0800
Subject: [PATCH] fix:外来文件空指针报错优化

---
 cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordVerifyServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 35 insertions(+), 23 deletions(-)

diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordVerifyServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordVerifyServiceImpl.java
index 043e911..3758aa0 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordVerifyServiceImpl.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordVerifyServiceImpl.java
@@ -37,7 +37,7 @@
  * 澶栨潵鏂囦欢纭璁板綍 鏈嶅姟瀹炵幇绫�
  * </p>
  *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @author
  * @since 2024-11-12 10:29:44
  */
 @Service
@@ -53,14 +53,10 @@
     @Override
     public IPage<ManageRecordVerify> pageManageRecordVerify(Page page, ManageRecordVerify manageRecordVerify) {
         if (ObjectUtils.isEmpty(manageRecordVerify.getManageRecordTotalId())) {
-            //鑾峰彇褰撳墠骞翠唤
-            LocalDate currentDate = LocalDate.now();
-            // 瀹氫箟鏃ユ湡鏍煎紡
-            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
-            // 鏍煎紡鍖栧綋鍓嶆棩鏈�
-            String currentMonth = currentDate.format(formatter);
-            //鏌ヨ鍘嗗彶
-            ManageRecordTotal manageRecordTotal = manageRecordTotalMapper.selectOne(Wrappers.<ManageRecordTotal>lambdaQuery().eq(ManageRecordTotal::getYear, currentMonth));
+            ManageRecordTotal manageRecordTotal = getCurrentYearRecord();
+            if (ObjectUtils.isEmpty(manageRecordTotal)) {
+                return new Page<>();
+            }
             manageRecordVerify.setManageRecordTotalId(manageRecordTotal.getId());
         }
         return manageRecordVerifyMapper.pageManageRecordVerify(page, QueryWrappers.queryWrappers(manageRecordVerify));
@@ -68,17 +64,39 @@
 
     @Override
     public int addManageRecordVerify(ManageRecordVerify manageRecordVerify) {
+        ManageRecordTotal manageRecordTotal = getOrCreateCurrentYearRecord();
+        manageRecordVerify.setManageRecordTotalId(manageRecordTotal.getId());
+        manageRecordVerifyMapper.insert(manageRecordVerify);
+        manageRecordTotal.setTotalNum(1 + manageRecordTotal.getTotalNum());
+        return manageRecordTotalMapper.updateById(manageRecordTotal);
+    }
+
+    private ManageRecordTotal getCurrentYearRecord() {
         //鑾峰彇褰撳墠骞翠唤
         LocalDate currentDate = LocalDate.now();
         // 瀹氫箟鏃ユ湡鏍煎紡
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
         // 鏍煎紡鍖栧綋鍓嶆棩鏈�
-        String currentMonth = currentDate.format(formatter);
-        ManageRecordTotal manageRecordTotal = manageRecordTotalMapper.selectOne(Wrappers.<ManageRecordTotal>lambdaQuery().eq(ManageRecordTotal::getYear, currentMonth));
-        manageRecordVerify.setManageRecordTotalId(manageRecordTotal.getId());
-        manageRecordVerifyMapper.insert(manageRecordVerify);
-        manageRecordTotal.setTotalNum(1 + manageRecordTotal.getTotalNum());
-        return manageRecordTotalMapper.updateById(manageRecordTotal);
+        String currentYear = currentDate.format(formatter);
+        //鏌ヨ鍘嗗彶
+        return manageRecordTotalMapper.selectOne(Wrappers.<ManageRecordTotal>lambdaQuery().eq(ManageRecordTotal::getYear, currentYear));
+    }
+
+    private ManageRecordTotal getOrCreateCurrentYearRecord() {
+        ManageRecordTotal manageRecordTotal = getCurrentYearRecord();
+        if (ObjectUtils.isEmpty(manageRecordTotal)) {
+            manageRecordTotal = new ManageRecordTotal();
+            //鑾峰彇褰撳墠骞翠唤
+            LocalDate currentDate = LocalDate.now();
+            // 瀹氫箟鏃ユ湡鏍煎紡
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
+            // 鏍煎紡鍖栧綋鍓嶆棩鏈�
+            String currentYear = currentDate.format(formatter);
+            manageRecordTotal.setYear(currentYear);
+            manageRecordTotal.setTotalNum(0);
+            manageRecordTotalMapper.insert(manageRecordTotal);
+        }
+        return manageRecordTotal;
     }
 
     @Override
@@ -94,13 +112,7 @@
     public int exportManageRecordVerify(MultipartFile file) {
         List<ManageRecordVerify> manageRecordVerifyList = new ArrayList<>();
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        //鑾峰彇褰撳墠骞翠唤
-        LocalDate currentDate = LocalDate.now();
-        // 瀹氫箟鏃ユ湡鏍煎紡
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy");
-        // 鏍煎紡鍖栧綋鍓嶆棩鏈�
-        String currentMonth = currentDate.format(formatter);
-        ManageRecordTotal manageRecordTotal = manageRecordTotalMapper.selectOne(Wrappers.<ManageRecordTotal>lambdaQuery().eq(ManageRecordTotal::getYear, currentMonth));
+        ManageRecordTotal manageRecordTotal = getOrCreateCurrentYearRecord();
         try {
             InputStream inputStream = file.getInputStream();
             XWPFDocument document = new XWPFDocument(inputStream);
@@ -154,4 +166,4 @@
         }
         return 0;
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3