From f7ba5f3fb17abf09b6bd3980c46761c2431a4c31 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 12 十月 2026 10:26:27 +0800
Subject: [PATCH] feat(search-new): 标准维护保存时自动同步生成并归档查新记录

---
 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java
index b257cff..c7f13bb 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java
@@ -73,10 +73,36 @@
     public boolean addMethodSearchNew(List<ProcessMethodSearchNew> processMethodSearchNewList) {
         for (ProcessMethodSearchNew processMethodSearchNew : processMethodSearchNewList) {
             processMethodSearchNew.setIsNewStandard(1);
+            processMethodSearchNew.setIsAutoArchived(0);
+            processMethodSearchNew.setStandardMethodId(null);
+            processMethodSearchNew.setCurrentAutoStandardId(null);
+            processMethodSearchNew.setAutoArchivedTime(null);
         }
         // 鏂板
         this.saveBatch(processMethodSearchNewList);
         return true;
+    }
+
+    @Override
+    public boolean updateMethodSearchNew(ProcessMethodSearchNew processMethodSearchNew) {
+        ProcessMethodSearchNew old = getById(processMethodSearchNew.getMethodSearchNewId());
+        if (old == null) {
+            throw new ErrorException("鏍囧噯鏌ユ柊璁板綍涓嶅瓨鍦�");
+        }
+        if (Integer.valueOf(1).equals(old.getIsAutoArchived())) {
+            throw new ErrorException("鑷姩褰掓。璁板綍涓嶅厑璁镐慨鏀�");
+        }
+        return update(Wrappers.<ProcessMethodSearchNew>lambdaUpdate()
+                .eq(ProcessMethodSearchNew::getMethodSearchNewId, old.getMethodSearchNewId())
+                .set(ProcessMethodSearchNew::getVerifyId, processMethodSearchNew.getVerifyId())
+                .set(ProcessMethodSearchNew::getMethodName, processMethodSearchNew.getMethodName())
+                .set(ProcessMethodSearchNew::getStandardNo, processMethodSearchNew.getStandardNo())
+                .set(ProcessMethodSearchNew::getFileNo, processMethodSearchNew.getFileNo())
+                .set(ProcessMethodSearchNew::getNewMethodName, processMethodSearchNew.getNewMethodName())
+                .set(ProcessMethodSearchNew::getNewStandardNo, processMethodSearchNew.getNewStandardNo())
+                .set(ProcessMethodSearchNew::getSearchNewSource, processMethodSearchNew.getSearchNewSource())
+                .set(ProcessMethodSearchNew::getRemark, processMethodSearchNew.getRemark())
+                .set(ProcessMethodSearchNew::getIsNewStandard, 1));
     }
 
     /**
@@ -92,6 +118,12 @@
         processMethodSearchNew.setBeginDate(null);
         processMethodSearchNew.setEndDate(null);
         return baseMapper.pageMethodSearchNew(page, QueryWrappers.queryWrappers(processMethodSearchNew), beginDate, endDate);
+    }
+
+    @Override
+    public IPage<ProcessMethodSearchNew> pageAutoArchived(Page page, ProcessMethodSearchNew processMethodSearchNew) {
+        processMethodSearchNew.setIsAutoArchived(null);
+        return baseMapper.pageAutoArchived(page, QueryWrappers.queryWrappers(processMethodSearchNew));
     }
 
     /**
@@ -136,7 +168,7 @@
                     searchNewBackupsDto.setRemarkString("浣滃簾");
                 }
             }
-            switch (methodSearchNew.getSearchNewSource()) {
+            if (methodSearchNew.getSearchNewSource() != null) switch (methodSearchNew.getSearchNewSource()) {
                 case 0:
                     searchNewBackupsDto.setStandardNet("鈭�");
                     break;
@@ -257,20 +289,14 @@
             List<ProcessMethodSearchNew> collect = searchNewDtoList.stream().map(searchNewDto -> {
                 ProcessMethodSearchNew searchNew = new ProcessMethodSearchNew();
                 BeanUtils.copyProperties(searchNewDto, searchNew);
-                // 鏄惁鏄洿鏂�
-                if (StringUtils.isNotBlank(searchNewDto.getIsNewStandardString())) {
-                    if (searchNewDto.getIsNewStandardString().equals("鏄�")) {
-                        searchNew.setIsNewStandard(1);
-                    } else {
-                        searchNew.setIsNewStandard(0);
-                    }
-                }
+                searchNew.setIsNewStandard(1);
+                searchNew.setIsAutoArchived(0);
                 // 鏌ユ柊璁板綍
                 if (StringUtils.isNotBlank(searchNewDto.getStandardNet())) {
                     searchNew.setSearchNewSource(0);
                 } else if (StringUtils.isNotBlank(searchNewDto.getInformationOffices())) {
                     searchNew.setSearchNewSource(1);
-                } else if (StringUtils.isNotBlank(searchNewDto.getIsNewStandardString())) {
+                } else if (StringUtils.isNotBlank(searchNewDto.getStandardBookstore())) {
                     searchNew.setSearchNewSource(2);
                 } else if (StringUtils.isNotBlank(searchNewDto.getOther())) {
                     searchNew.setSearchNewSource(3);
@@ -309,12 +335,14 @@
         processMethodSearchNewArchivedMapper.insert(archived);
 
         // 鏌ヨ鎵�鏈夌殑鏍囧噯鏌ユ柊
-        List<ProcessMethodSearchNew> searchNewList = this.list();
+        List<ProcessMethodSearchNew> searchNewList = this.list(Wrappers.<ProcessMethodSearchNew>lambdaQuery()
+                .eq(ProcessMethodSearchNew::getIsAutoArchived, 0));
 
         // 鏂板澶嶅埗
         List<ProcessMethodSearchNewBackups> methodSearchNewBackups = searchNewList.stream().map(processMethodSearchNew -> {
             ProcessMethodSearchNewBackups backups = new ProcessMethodSearchNewBackups();
             BeanUtils.copyProperties(processMethodSearchNew, backups);
+            backups.setIsNewStandard(0);
             backups.setArchivedId(archived.getArchivedId());
             return backups;
         }).collect(Collectors.toList());

--
Gitblit v1.9.3