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 |   69 ++++++++++++++++++++--------------
 1 files changed, 40 insertions(+), 29 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 3fac647..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
@@ -1,11 +1,14 @@
 package com.ruoyi.manage.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.framework.exception.ErrorException;
 import com.ruoyi.manage.mapper.ManageRecordTotalMapper;
 import com.ruoyi.manage.mapper.ManageRecordVerifyMapper;
 import com.ruoyi.manage.pojo.ManageRecordTotal;
@@ -34,7 +37,7 @@
  * 澶栨潵鏂囦欢纭璁板綍 鏈嶅姟瀹炵幇绫�
  * </p>
  *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @author
  * @since 2024-11-12 10:29:44
  */
 @Service
@@ -48,37 +51,52 @@
     private ManageRecordTotalMapper manageRecordTotalMapper;
 
     @Override
-    public Map<String, Object> pageManageRecordVerify(Page page, ManageRecordVerify manageRecordVerify) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("head", PrintChina.printChina(ManageRecordVerify.class));
+    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());
         }
-        map.put("body", manageRecordVerifyMapper.pageManageRecordVerify(page, QueryWrappers.queryWrappers(manageRecordVerify)));
-        return map;
+        return manageRecordVerifyMapper.pageManageRecordVerify(page, QueryWrappers.queryWrappers(manageRecordVerify));
     }
 
     @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);
@@ -117,7 +129,6 @@
                 for (int i = 1; i < rows.size(); i++) { // 浠庣浜岃寮�濮嬶紝璺宠繃琛ㄥご
                     XWPFTableRow row = rows.get(i);
                     if (row.getTableCells().size() != 8) {
-                        System.out.println("琛� " + (i + 1) + " 鐨勫垪鏁颁笉鍖归厤锛岃烦杩囪琛�");
                         continue;
                     }
                     if (ObjectUtils.isNotEmpty(row.getCell(1).getText())) {
@@ -155,4 +166,4 @@
         }
         return 0;
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3