From f41e9a8dd4aa5de0de323ffe2377c896cb44ea37 Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期五, 05 十二月 2025 18:46:34 +0800
Subject: [PATCH] 修改了对应代码

---
 archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java |  227 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 182 insertions(+), 45 deletions(-)

diff --git a/archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java b/archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
index 800b22a..f34a9d5 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/impl/DocumentMaterialsServiceImpl.java
@@ -6,10 +6,12 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.domain.ArchiveCategory;
+import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.DocumentMaterials;
 import com.ruoyi.domain.vo.*;
 import com.ruoyi.mapper.DocumentMaterialsMapper;
@@ -40,6 +42,9 @@
                 .like(!StringUtils.isEmpty(documentMaterials.getPublicity()), DocumentMaterials::getPublicity, documentMaterials.getPublicity())
                 .like(!StringUtils.isEmpty(documentMaterials.getRetentionPeriod()), DocumentMaterials::getRetentionPeriod, documentMaterials.getRetentionPeriod())
                 .like(!StringUtils.isEmpty(documentMaterials.getSecurityLevel()), DocumentMaterials::getSecurityLevel, documentMaterials.getSecurityLevel())
+                .like(!StringUtils.isEmpty(documentMaterials.getTitle()), DocumentMaterials::getTitle, documentMaterials.getTitle())
+
+
                 .eq(documentMaterials.getDate()!=null, DocumentMaterials::getDate, documentMaterials.getDate())
                 .eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId())
         .eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber());
@@ -148,59 +153,79 @@
     }
 
     @Override
+    public List<DocumentMaterials> selectDocumentMaterialsByIds(Long[] ids) {
+        // 鑾峰彇褰撳墠鐢ㄦ埛ID
+        Long userid = SecurityUtils.getUserId();
+
+        // 鍒涘缓鏌ヨ鏉′欢
+        LambdaQueryWrapper<DocumentMaterials> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+
+        // 鏍规嵁ids鏌ヨ
+        lambdaQueryWrapper.in(DocumentMaterials::getMaterialId, Arrays.asList(ids));
+        lambdaQueryWrapper.orderByAsc(DocumentMaterials::getPageNumber);
+        // 濡傛灉涓嶆槸绠$悊鍛橈紝闇�瑕佽�冭檻鏉冮檺杩囨护锛堝彲鏍规嵁瀹為檯鏉冮檺闇�姹傝皟鏁达級
+        if (userid != 1) {
+            // 杩欓噷鍙互娣诲姞鏉冮檺鐩稿叧鐨勮繃婊ゆ潯浠�
+        }
+
+        List<DocumentMaterials> beanRecords = list(lambdaQueryWrapper);
+        return beanRecords;
+    }
+
+    @Override
     public int updateDocumentMaterials(DocumentMaterials documentMaterials) {
         boolean result = false;
         try {
 
-            //淇敼椤靛彿鎴愬姛涔嬪悗锛岃閲嶆柊鐢熸垚鏂囦欢鏉愭枡搴忓彿锛岄〉娆�
-            //鏍规嵁pageNumber鎷垮埌title锛岀劧鍚庤绠梡ageOrder
-            LambdaQueryWrapper<DocumentMaterials> lqw = new LambdaQueryWrapper<>();
-            lqw.eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId());
-            lqw.eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber());
-            List<DocumentMaterials> records = list(lqw);
+//            //淇敼椤靛彿鎴愬姛涔嬪悗锛岃閲嶆柊鐢熸垚鏂囦欢鏉愭枡搴忓彿锛岄〉娆�
+//            //鏍规嵁pageNumber鎷垮埌title锛岀劧鍚庤绠梡ageOrder
+//            LambdaQueryWrapper<DocumentMaterials> lqw = new LambdaQueryWrapper<>();
+//            lqw.eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId());
+//            lqw.eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber());
+//            List<DocumentMaterials> records = list(lqw);
 
 
-
-            //璁$畻pageOrder
-            Long pageOrder = 1L;
-            if(documentMaterials.getPageNumber().equals(1))
-                pageOrder = 1L;
-            else {
-                Long maxPOrder = this.baseMapper.getMaxPageOrder(records.get(0).getTitle(), documentMaterials.getPageNumber(), records.get(0).getStage(), documentMaterials.getRecordId());
-                if (maxPOrder != null)
-                    pageOrder = maxPOrder + 1;
-            }
-            //璁剧疆pageOrder
-            documentMaterials.setPageOrder(pageOrder);
-            //璁$畻fileNumber
-            Long fileNumber = this.getFiNum(documentMaterials.getPageNumber(), documentMaterials.getRecordId());
-            documentMaterials.setFileNumber(fileNumber);
+//
+//            //璁$畻pageOrder
+//            Long pageOrder = 1L;
+//            if(documentMaterials.getPageNumber().equals(1))
+//                pageOrder = 1L;
+//            else {
+//                Long maxPOrder = this.baseMapper.getMaxPageOrder(records.get(0).getTitle(), documentMaterials.getPageNumber(), records.get(0).getStage(), documentMaterials.getRecordId());
+//                if (maxPOrder != null)
+//                    pageOrder = maxPOrder + 1;
+//            }
+//            //璁剧疆pageOrder
+//            documentMaterials.setPageOrder(pageOrder);
+//            //璁$畻fileNumber
+//            Long fileNumber = this.getFiNum(documentMaterials.getPageNumber(), documentMaterials.getRecordId());
+//            documentMaterials.setFileNumber(fileNumber);
             //淇敼椤靛彿
             result = updateById(documentMaterials);
-            //鎶婂墿涓嬫墍鏈夌殑鐨刦ileNumber鍜宲ageOrder閮芥洿鏂颁竴閬�
-            LambdaQueryWrapper<DocumentMaterials> lqw1 = new LambdaQueryWrapper<>();
-            lqw.eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId());
-          //  lqw.eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber());
-            List<DocumentMaterials> recordss = list(lqw1);
-            for(DocumentMaterials dt: recordss)
-            {
-                //璁$畻pageOrder
-                Long pageOrder1 = 1L;
-                if(dt.getPageNumber().equals(1))
-                    pageOrder1 = 1L;
-                else {
-                    Long maxPOrder1 = this.baseMapper.getMaxPageOrder(dt.getTitle(), dt.getPageNumber(), dt.getStage(), dt.getRecordId());
-                    if (maxPOrder1 != null)
-                        pageOrder1 = maxPOrder1 + 1;
-                }
-                //璁剧疆pageOrder
-                dt.setPageOrder(pageOrder1);
-                //璁$畻fileNumber
-                Long fileNumber1 = this.getFiNum(dt.getPageNumber(), dt.getRecordId());
-                dt.setFileNumber(fileNumber1);
-                //淇敼椤靛彿
-                updateById(dt);
-            }
+//            //鎶婂墿涓嬫墍鏈夌殑鐨刦ileNumber鍜宲ageOrder閮芥洿鏂颁竴閬�
+//            LambdaQueryWrapper<DocumentMaterials> lqw1 = new LambdaQueryWrapper<>();
+//            lqw.eq(documentMaterials.getRecordId()!=null, DocumentMaterials::getRecordId, documentMaterials.getRecordId());
+//          //  lqw.eq(documentMaterials.getPageNumber()!=null, DocumentMaterials::getPageNumber, documentMaterials.getPageNumber());
+//            List<DocumentMaterials> recordss = list(lqw1);
+//            for(DocumentMaterials dt: recordss)
+//            {
+//                //璁$畻pageOrder
+//                Long pageOrder1 = 1L;
+//                if(dt.getPageNumber().equals(1))
+//                    pageOrder1 = 1L;
+//                else {
+//                    Long maxPOrder1 = this.baseMapper.getMaxPageOrder(dt.getTitle(), dt.getPageNumber(), dt.getStage(), dt.getRecordId());
+//                    if (maxPOrder1 != null)
+//                        pageOrder1 = maxPOrder1 + 1;
+//                }
+//                //璁剧疆pageOrder
+//                dt.setPageOrder(pageOrder1);
+//                //璁$畻fileNumber
+//                Long fileNumber1 = this.getFiNum(dt.getPageNumber(), dt.getRecordId());
+//                dt.setFileNumber(fileNumber1);
+//                //淇敼椤靛彿
+//                updateById(dt);
+//            }
 
 
         } catch (Exception e) {
@@ -299,4 +324,116 @@
         else
             return null;
     }
+
+    @Override
+    public boolean isPageNumberIslegal(Integer recordId) {
+        return this.baseMapper.isPageNumberLegal(recordId);
+    }
+
+    @Override
+    public int getFileCount(Integer recordId) {
+        return this.baseMapper.getCount(recordId);
+    }
+    
+    @Override
+    public AjaxResult addMiddleRecordsByPageNumbers(Long recordId, Long maxPageNumber) {
+        try {
+            // 鑾峰彇鎸囧畾recordId涓嬬殑鎵�鏈夎褰曪紝鎸夐〉鍙峰崌搴忔帓鍒�
+            LambdaQueryWrapper<DocumentMaterials> lqw = new LambdaQueryWrapper<>();
+            lqw.eq(DocumentMaterials::getRecordId, recordId);
+            lqw.orderByAsc(DocumentMaterials::getPageNumber);
+            List<DocumentMaterials> records = this.list(lqw);
+
+            if (records == null || records.isEmpty()) {
+                return AjaxResult.success("娌℃湁鎵惧埌鎸囧畾璁板綍");
+            }
+            
+            List<DocumentMaterials> middleRecords = new ArrayList<>();
+            
+            // 閬嶅巻璁板綍锛屾壘鍑洪渶瑕佹坊鍔犱腑闂撮〉鍙风殑浣嶇疆
+            for (int i = 0; i < records.size() - 1; i++) {
+                DocumentMaterials currentRecord = records.get(i);
+                DocumentMaterials nextRecord = records.get(i + 1);
+                
+                long currentPage = currentRecord.getPageNumber();
+                long nextPage = nextRecord.getPageNumber();
+                
+                // 濡傛灉褰撳墠椤靛彿鍜屼笅涓�椤靛彿涔嬮棿鏈夐棿闅�
+                if (nextPage - currentPage > 1) {
+                    // 娣诲姞涓棿椤靛彿鐨勮褰曪紝淇℃伅涓庡綋鍓嶈褰曚繚鎸佷竴鑷�
+                    for (long page = currentPage + 1; page < nextPage; page++) {
+                        DocumentMaterials newRecord = new DocumentMaterials();
+                        // 澶嶅埗褰撳墠璁板綍鐨勬墍鏈夊睘鎬�
+                        BeanUtils.copyBeanProp(newRecord, currentRecord);
+                        // 璁剧疆鏂扮殑椤靛彿
+                        newRecord.setPageNumber(page);
+                        // 娓呴櫎ID锛岀‘淇濇槸鏂拌褰�
+                        newRecord.setMaterialId(null);
+                        // 璁剧疆鍒涘缓鏃堕棿
+                        newRecord.setCreatedAt(new Date());
+                        // 閲嶇疆鏂囦欢鏉愭枡搴忓彿涓簄ull锛岃绯荤粺鑷姩鐢熸垚
+                        newRecord.setFileNumber(null);
+                        // 閲嶇疆椤垫涓簄ull锛岃绯荤粺鑷姩鐢熸垚
+                        newRecord.setPageOrder(null);
+                        // 閲嶇疆鍥惧儚鐩稿叧瀛楁锛屼互渚夸笂浼犳枃浠舵椂鏇存柊
+                        newRecord.setSizeType(null);
+                        newRecord.setWidth(null);
+                        newRecord.setHeight(null);
+                        newRecord.setHorizontalResolution(null);
+                        newRecord.setVerticalResolution(null);
+                        newRecord.setFileSize(null);
+                        newRecord.setFormat(null);
+                        newRecord.setUrl(null);
+                        // 娣诲姞鍒颁腑闂磋褰曞垪琛�
+                        middleRecords.add(newRecord);
+                    }
+                }
+            }
+            
+            // 澶勭悊鏈�鍚庝竴鏉¤褰曞埌maxPageNumber涔嬮棿鐨勯棿闅�
+            DocumentMaterials lastRecord = records.get(records.size() - 1);
+            long lastPage = lastRecord.getPageNumber();
+            
+            if (maxPageNumber > lastPage) {
+                // 娣诲姞浠巐astPage+1鍒癿axPageNumber涔嬮棿鐨勪腑闂磋褰�
+                for (long page = lastPage + 1; page <= maxPageNumber; page++) {
+                    DocumentMaterials newRecord = new DocumentMaterials();
+                    // 澶嶅埗鏈�鍚庝竴鏉¤褰曠殑鎵�鏈夊睘鎬�
+                    BeanUtils.copyBeanProp(newRecord, lastRecord);
+                    // 璁剧疆鏂扮殑椤靛彿
+                    newRecord.setPageNumber(page);
+                    // 娓呴櫎ID锛岀‘淇濇槸鏂拌褰�
+                    newRecord.setMaterialId(null);
+                    // 璁剧疆鍒涘缓鏃堕棿
+                    newRecord.setCreatedAt(new Date());
+                    // 閲嶇疆鏂囦欢鏉愭枡搴忓彿涓簄ull锛岃绯荤粺鑷姩鐢熸垚
+                    newRecord.setFileNumber(null);
+                    // 閲嶇疆椤垫涓簄ull锛岃绯荤粺鑷姩鐢熸垚
+                    newRecord.setPageOrder(null);
+                    // 閲嶇疆鍥惧儚鐩稿叧瀛楁锛屼互渚夸笂浼犳枃浠舵椂鏇存柊
+                    newRecord.setSizeType(null);
+                    newRecord.setWidth(null);
+                    newRecord.setHeight(null);
+                    newRecord.setHorizontalResolution(null);
+                    newRecord.setVerticalResolution(null);
+                    newRecord.setFileSize(null);
+                    newRecord.setFormat(null);
+                    newRecord.setUrl(null);
+                    // 娣诲姞鍒颁腑闂磋褰曞垪琛�
+                    middleRecords.add(newRecord);
+                }
+            }
+            
+            // 鎵归噺淇濆瓨涓棿璁板綍
+            if (!middleRecords.isEmpty()) {
+                this.saveBatch(middleRecords);
+                return AjaxResult.success("鎴愬姛娣诲姞涓棿璁板綍", "娣诲姞鏁伴噺锛�" + middleRecords.size());
+            } else {
+                return AjaxResult.success("娌℃湁闇�瑕佹坊鍔犵殑涓棿璁板綍");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("娣诲姞涓棿璁板綍澶辫触锛�" + e.getMessage());
+        }
+    }
 }

--
Gitblit v1.9.1