liding
2026-10-24 f8c024b1c1de318a4de485e048d1044cd6dcaa53
cnas-process/src/main/java/com/ruoyi/process/listener/StandardMethodSearchNewListener.java
@@ -16,7 +16,7 @@
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
/** 根据标准维护保存动作同步生成、归档标准查新记录。 */
/** 根据标准维护保存动作同步生成或更新现行标准查新记录。 */
@Component
@RequiredArgsConstructor
public class StandardMethodSearchNewListener {
@@ -44,20 +44,24 @@
        ProcessMethodSearchNew current = searchNewMapper.selectOne(Wrappers.<ProcessMethodSearchNew>lambdaQuery()
                .eq(ProcessMethodSearchNew::getCurrentAutoStandardId, event.getStandardMethodId())
                .last("FOR UPDATE"));
        if (current == null && searchNewMapper.selectCount(Wrappers.<ProcessMethodSearchNew>lambdaQuery()
                .eq(ProcessMethodSearchNew::getStandardMethodId, event.getStandardMethodId())
                .eq(ProcessMethodSearchNew::getIsAutoArchived, 1)) > 0) {
            return;
        }
        if (!event.isEdit() && current != null) {
            return;
        }
        LocalDateTime now = LocalDateTime.now(CHINA_ZONE);
        if (current != null) {
            searchNewMapper.update(null, Wrappers.<ProcessMethodSearchNew>lambdaUpdate()
                    .eq(ProcessMethodSearchNew::getMethodSearchNewId, current.getMethodSearchNewId())
                    .set(ProcessMethodSearchNew::getIsNewStandard, 0)
                    .set(ProcessMethodSearchNew::getIsAutoArchived, 1)
                    .set(ProcessMethodSearchNew::getCurrentAutoStandardId, null)
                    .set(ProcessMethodSearchNew::getAutoArchivedTime, now));
                    .set(ProcessMethodSearchNew::getMethodName, event.getName())
                    .set(ProcessMethodSearchNew::getStandardNo, event.getCode()));
            return;
        }
        LocalDateTime now = LocalDateTime.now(CHINA_ZONE);
        ProcessMethodSearchNew created = new ProcessMethodSearchNew();
        created.setMethodName(event.getName());
        created.setStandardNo(event.getCode());