From f8dc62a9dca8a1a482864478127503f4b2477463 Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 5 Jan 2026 11:20:18 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E4=BF=A1=E6=81=AF=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/bo/SysPrintTemplateNodeBo.java | 5 ++ .../impl/SysPrintTemplateNodeServiceImpl.java | 72 +++++++++++++------ 2 files changed, 54 insertions(+), 23 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPrintTemplateNodeBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPrintTemplateNodeBo.java index e858d7d9..0a18c29c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPrintTemplateNodeBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysPrintTemplateNodeBo.java @@ -9,6 +9,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import java.util.List; + /** * 打印节点信息业务对象 sys_print_template_node * @@ -90,4 +92,7 @@ public class SysPrintTemplateNodeBo extends BaseEntity { * 模板名称 */ private String templateName; + + + private List ids; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPrintTemplateNodeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPrintTemplateNodeServiceImpl.java index cfb8b72f..b731b13a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPrintTemplateNodeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPrintTemplateNodeServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -20,9 +21,8 @@ import org.dromara.system.mapper.SysPrintTemplateNodeMapper; import org.dromara.system.service.ISysPrintTemplateNodeService; import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 打印节点信息Service业务层处理 @@ -91,6 +91,7 @@ public class SysPrintTemplateNodeServiceImpl implements ISysPrintTemplateNodeSer .eq(StringUtils.isNotBlank(bo.getData()), SysPrintTemplateNode::getData, bo.getData()) .eq(StringUtils.isNotBlank(bo.getParentNode()), SysPrintTemplateNode::getParentNode, bo.getParentNode()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysPrintTemplateNode::getActiveFlag, bo.getActiveFlag()) + .in(StringUtils.isNotNull(bo.getIds()), SysPrintTemplateNode::getId, bo.getIds()) .orderByAsc(SysPrintTemplateNode::getCreateTime); return lqw; } @@ -155,26 +156,51 @@ public class SysPrintTemplateNodeServiceImpl implements ISysPrintTemplateNodeSer @Override @Transactional(rollbackFor = Exception.class) public int updateNode(List bos) { - int i = 1; - for (SysPrintTemplateNodeBo bo : bos) { - String id = bo.getId(); - if (StringUtils.isEmpty(id)) { - throw new ServiceException(bo.getId() + "节点不可为空!"); - } - SysPrintTemplateNodeBo selectNodeBo = new SysPrintTemplateNodeBo(); - selectNodeBo.setId(bo.getId()); - List nodeVos = this.queryList(selectNodeBo); - if (nodeVos.isEmpty()) { - throw new ServiceException(bo.getId() + "节点不存在!"); - } - if (i == 1){ - for (SysPrintTemplateNodeVo nodeVo : nodeVos) { - baseMapper.deleteById(nodeVo.getTemplateNodeId()); - } - } - i++; - this.insertByBo(bo); + if (CollectionUtils.isEmpty(bos)) { + return 0; } - return 1; + + List idList = bos.stream() + .map(bo -> { + String id = bo.getId(); + if (StringUtils.isEmpty(id)) { + throw new ServiceException("节点ID不可为空!"); + } + return id; + }) + .distinct() + .collect(Collectors.toList()); + List existingNodes = this.queryListByIds(idList); + Set templateNodeIds = existingNodes.stream() + .map(SysPrintTemplateNodeVo::getTemplateNodeId) + .collect(Collectors.toSet()); + + if (!templateNodeIds.isEmpty()) { + baseMapper.deleteByIds(templateNodeIds); + } + + int insertCount = 0; + for (SysPrintTemplateNodeBo bo : bos) { + SysPrintTemplateNode add = MapstructUtils.convert(bo, SysPrintTemplateNode.class); + add.setTemplateNodeId(null); + if (baseMapper.insert(add) > 0) { + insertCount++; + } + } + return insertCount; } + + /** + * 批量查询节点信息 + */ + private List queryListByIds(List ids) { + if (CollectionUtils.isEmpty(ids)) { + return Collections.emptyList(); + } + SysPrintTemplateNodeBo queryBo = new SysPrintTemplateNodeBo(); + queryBo.setIds(ids); + return this.queryList(queryBo); + } + + }