From 9f5127b6c58a297104bccc75a4c5125733f5ff4b Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期四, 27 十一月 2025 14:33:11 +0800
Subject: [PATCH] 修改了对应代码

---
 archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java |  136 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 111 insertions(+), 25 deletions(-)

diff --git a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
index c7c3d40..f0fcaf7 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
@@ -3,6 +3,8 @@
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -20,9 +22,11 @@
 import com.ruoyi.mapper.ArchiveRecordsMapper;
 import com.ruoyi.mapper.ArchiverecordstouserMapper;
 import com.ruoyi.service.IArchiveRecordsService;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
+import java.util.Arrays;
 
 /**
  * 妗f璁板綍Service涓氬姟灞傚鐞�
@@ -45,29 +49,72 @@
     private LambdaQueryWrapper<ArchiveRecords> buildCondition(ArchiveRecords archiveRecords, Long userId){
         LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
 
+        // 鏍规嵁寮�濮嬪拰缁撴潫鐨刢ategoryNumber鐢熸垚杩炵画鐨剅ecordId
+        String categoryNumberStart = archiveRecords.getCategoryNumberStart();
+        String categoryNumberEnd = archiveRecords.getCategoryNumberEnd();
+        
+        if (!StringUtils.isEmpty(categoryNumberStart) && !StringUtils.isEmpty(categoryNumberEnd)) {
+            try {
+                // 瑙f瀽寮�濮嬪拰缁撴潫鐨勭紪鍙凤紝鎻愬彇鍓嶇紑鍜屾暟瀛楅儴鍒�
+                // 渚嬪锛欱1.3-999-2024-1 -> 鍓嶇紑: B1.3-999-2024-, 鏁板瓧: 1
+                int lastDashIndexStart = categoryNumberStart.lastIndexOf('-');
+                int lastDashIndexEnd = categoryNumberEnd.lastIndexOf('-');
+                
+                if (lastDashIndexStart > 0 && lastDashIndexEnd > 0) {
+                    String prefixStart = categoryNumberStart.substring(0, lastDashIndexStart + 1);
+                    String prefixEnd = categoryNumberEnd.substring(0, lastDashIndexEnd + 1);
+                    
+                    // 纭繚鍓嶇紑鐩稿悓锛屾墠鐢熸垚杩炵画缂栧彿
+                    if (prefixStart.equals(prefixEnd)) {
+                        int startNum = Integer.parseInt(categoryNumberStart.substring(lastDashIndexStart + 1));
+                        int endNum = Integer.parseInt(categoryNumberEnd.substring(lastDashIndexEnd + 1));
+                        
+                        // 鐢熸垚杩炵画鐨剅ecordId鍒楄〃锛屽皢鏁板瓧鏍煎紡鍖栦负5浣嶏紙濡�00001, 00101锛�
+                        List<String> recordIds = new ArrayList<>();
+                        for (int i = startNum; i <= endNum; i++) {
+                            // 浣跨敤String.format灏嗘暟瀛楁牸寮忓寲涓�5浣嶏紝涓嶈冻鍓嶉潰琛�0
+                            String formattedNumber = String.format("%05d", i);
+                            recordIds.add(prefixStart + formattedNumber);
+                        }
+                        
+                        // 娣诲姞鍒版煡璇㈡潯浠朵腑
+                        lqw.in(ArchiveRecords::getRecordId, recordIds);
+                    }
+                }
+            } catch (Exception e) {
+                // 濡傛灉瑙f瀽澶辫触锛屽拷鐣ユ鏉′欢
+                e.printStackTrace();
+            }
+        }
+
         System.out.println(archiveRecords.getIds());
 
-        lqw.like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId())
-                .like(!StringUtils.isEmpty(archiveRecords.getInquiryNumber()), ArchiveRecords::getInquiryNumber, archiveRecords.getInquiryNumber())
-                .like(!StringUtils.isEmpty(archiveRecords.getCaseTitle()), ArchiveRecords::getCaseTitle, archiveRecords.getCaseTitle())
-                .like(!StringUtils.isEmpty(archiveRecords.getPublicAttribute()), ArchiveRecords::getPublicAttribute, archiveRecords.getPublicAttribute())
-                .like(!StringUtils.isEmpty(archiveRecords.getPreparationUnit()), ArchiveRecords::getPreparationUnit, archiveRecords.getPreparationUnit())
-                .like(!StringUtils.isEmpty(archiveRecords.getRetentionPeriod()), ArchiveRecords::getRetentionPeriod, archiveRecords.getRetentionPeriod())
-                .like(!StringUtils.isEmpty(archiveRecords.getSecurityClassification()), ArchiveRecords::getSecurityClassification, archiveRecords.getSecurityClassification())
-                .like(!StringUtils.isEmpty(archiveRecords.getFilingNumber()), ArchiveRecords::getFilingNumber, archiveRecords.getFilingNumber())
-                .like(!StringUtils.isEmpty(archiveRecords.getConstructionUnit()), ArchiveRecords::getConstructionUnit, archiveRecords.getConstructionUnit())
-                .like(!StringUtils.isEmpty(archiveRecords.getConstructionAddress()), ArchiveRecords::getConstructionAddress, archiveRecords.getConstructionAddress())
-                .like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
-                .like(!StringUtils.isEmpty(archiveRecords.getProjectNumber()), ArchiveRecords::getProjectNumber, archiveRecords.getProjectNumber())
-                .like(!StringUtils.isEmpty(archiveRecords.getScanningCompany()), ArchiveRecords::getScanningCompany, archiveRecords.getScanningCompany())
-                .like(!StringUtils.isEmpty(archiveRecords.getArchiveRoomNumber()), ArchiveRecords::getArchiveRoomNumber, archiveRecords.getArchiveRoomNumber())
-                .like(!StringUtils.isEmpty(archiveRecords.getMicrofilmNumber()), ArchiveRecords::getMicrofilmNumber, archiveRecords.getMicrofilmNumber())
-                .like(!StringUtils.isEmpty(archiveRecords.getHistoricalReferenceNumber()), ArchiveRecords::getHistoricalReferenceNumber, archiveRecords.getHistoricalReferenceNumber())
-                .eq(!StringUtils.isEmpty(archiveRecords.getRecordStatus()), ArchiveRecords::getRecordStatus, archiveRecords.getRecordStatus())
-                .like(!StringUtils.isEmpty(archiveRecords.getEveryProjectName()), ArchiveRecords::getEveryProjectName, archiveRecords.getEveryProjectName())
-                .like(!StringUtils.isEmpty(archiveRecords.getRemarks()), ArchiveRecords::getRemarks, archiveRecords.getRemarks());
+        // 濡傛灉娌℃湁浣跨敤杩炵画缂栧彿鏉′欢锛屾墠浣跨敤鏅�氱殑like鏉′欢
+        if (StringUtils.isEmpty(categoryNumberStart) || StringUtils.isEmpty(categoryNumberEnd)) {
+            lqw.like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId());
+        }
+        else {
+                lqw.
+            like(!StringUtils.isEmpty(archiveRecords.getInquiryNumber()), ArchiveRecords::getInquiryNumber, archiveRecords.getInquiryNumber())
+                    .like(!StringUtils.isEmpty(archiveRecords.getCaseTitle()), ArchiveRecords::getCaseTitle, archiveRecords.getCaseTitle())
+                    .like(!StringUtils.isEmpty(archiveRecords.getPublicAttribute()), ArchiveRecords::getPublicAttribute, archiveRecords.getPublicAttribute())
+                    .like(!StringUtils.isEmpty(archiveRecords.getPreparationUnit()), ArchiveRecords::getPreparationUnit, archiveRecords.getPreparationUnit())
+                    .like(!StringUtils.isEmpty(archiveRecords.getRetentionPeriod()), ArchiveRecords::getRetentionPeriod, archiveRecords.getRetentionPeriod())
+                    .like(!StringUtils.isEmpty(archiveRecords.getSecurityClassification()), ArchiveRecords::getSecurityClassification, archiveRecords.getSecurityClassification())
+                    .like(!StringUtils.isEmpty(archiveRecords.getFilingNumber()), ArchiveRecords::getFilingNumber, archiveRecords.getFilingNumber())
+                    .like(!StringUtils.isEmpty(archiveRecords.getConstructionUnit()), ArchiveRecords::getConstructionUnit, archiveRecords.getConstructionUnit())
+                    .like(!StringUtils.isEmpty(archiveRecords.getConstructionAddress()), ArchiveRecords::getConstructionAddress, archiveRecords.getConstructionAddress())
+                    .like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
+                    .like(!StringUtils.isEmpty(archiveRecords.getProjectNumber()), ArchiveRecords::getProjectNumber, archiveRecords.getProjectNumber())
+                    .like(!StringUtils.isEmpty(archiveRecords.getScanningCompany()), ArchiveRecords::getScanningCompany, archiveRecords.getScanningCompany())
+                    .like(!StringUtils.isEmpty(archiveRecords.getArchiveRoomNumber()), ArchiveRecords::getArchiveRoomNumber, archiveRecords.getArchiveRoomNumber())
+                    .like(!StringUtils.isEmpty(archiveRecords.getMicrofilmNumber()), ArchiveRecords::getMicrofilmNumber, archiveRecords.getMicrofilmNumber())
+                    .like(!StringUtils.isEmpty(archiveRecords.getHistoricalReferenceNumber()), ArchiveRecords::getHistoricalReferenceNumber, archiveRecords.getHistoricalReferenceNumber())
+                    .eq(!StringUtils.isEmpty(archiveRecords.getRecordStatus()), ArchiveRecords::getRecordStatus, archiveRecords.getRecordStatus())
+                    .like(!StringUtils.isEmpty(archiveRecords.getEveryProjectName()), ArchiveRecords::getEveryProjectName, archiveRecords.getEveryProjectName())
+                    .like(!StringUtils.isEmpty(archiveRecords.getRemarks()), ArchiveRecords::getRemarks, archiveRecords.getRemarks());
 
-
+        }
 
         if(archiveRecords.getIds()!=null)
                 lqw.in(ArchiveRecords::getId,new ArrayList<>(Arrays.asList(archiveRecords.getIds())));
@@ -182,6 +229,27 @@
 
         return beanRecords;
     }
+    
+    @Override
+    public List<ArchiveRecords> selectArchiveRecordsByIds(Long[] ids)
+    {
+        // 鑾峰彇褰撳墠鐢ㄦ埛ID
+        Long userid = SecurityUtils.getUserId();
+        
+        // 鍒涘缓鏌ヨ鏉′欢
+        LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        
+        // 鏍规嵁ids鏌ヨ
+        lambdaQueryWrapper.in(ArchiveRecords::getId, Arrays.asList(ids));
+        
+        // 濡傛灉涓嶆槸绠$悊鍛橈紝闇�瑕佽�冭檻鏉冮檺杩囨护锛堝彲鏍规嵁瀹為檯鏉冮檺闇�姹傝皟鏁达級
+        if (userid != 1) {
+            // 杩欓噷鍙互娣诲姞鏉冮檺鐩稿叧鐨勮繃婊ゆ潯浠�
+        }
+        
+        List<ArchiveRecords> beanRecords = list(lambdaQueryWrapper);
+        return beanRecords;
+    }
 
     /**
      * 鏂板妗f璁板綍
@@ -282,6 +350,11 @@
 
         for (ArchiveRecords archiveRecords : dataList) {
            // physcialService.mySave(physcial);
+            archiveRecords.setRecordStatus("鏈綍鍏�");
+            LocalDateTime time = LocalDateTime.now();
+
+            Date date = Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
+            archiveRecords.setCreateTime(date);
             this.mySave(archiveRecords);
         }
 
@@ -294,15 +367,15 @@
     }
 
     @Override
-    public int updateArchiveById(Long id) {
-        this.baseMapper.updateStatusById(id);
+    public int updateArchiveById(String status, Long id) {
+        this.baseMapper.updateStatusById(status, id);
         return 0;
     }
 
     @Override
     public int updateStatusByIds(Long[] ids) {
         for(Long id : ids)
-            this.baseMapper.updateStatusById(id);
+            this.baseMapper.updateStatusById("褰曞叆瀹屾垚",id);
         return 0;
     }
 
@@ -326,16 +399,29 @@
         if (list.size() > 0) {
           //  throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
             //濡傛灉鏈夐噸澶嶆暟鎹紝鍒欐牴鎹畆ecordId杩涜鏁版嵁淇敼
-            this.baseMapper.update(archiveRecords, lqw);
-            return AjaxResult.success();
+         //   if()
+
+                this.baseMapper.update(archiveRecords, lqw);
+                return AjaxResult.success();
+
+
         }
         else {
+        Long userid = SecurityUtils.getUserId();
+        if(userid==1) {
             if (save(archiveRecords)) {
                 return AjaxResult.success();
             } else {
                 return AjaxResult.error();
             }
         }
+             else
+            return AjaxResult.error("妗f鍙蜂笉瀛樺湪锛�");
+        }
 
     }
+    @Override
+    public boolean whether(@Param("recordId") Long recordId){
+        return this.baseMapper.whether(recordId);
+    }
 }

--
Gitblit v1.9.1