From e0e8e1c836b5f8e6c2a40ffd9efe22e7bdfcfdcd Mon Sep 17 00:00:00 2001 From: syruan <15555146157@163.com> Date: Wed, 17 Dec 2025 14:54:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=B5=81=E5=B7=B2=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=8F=8B=E5=A5=BD=E8=BF=94=E5=9B=9E=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ApprovalProcessServiceImpl.java | 28 ++++++++++++------- .../approval/ApprovalProcessMapper.xml | 5 ++-- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/approval/service/impl/ApprovalProcessServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/approval/service/impl/ApprovalProcessServiceImpl.java index 9d738eb..c162b73 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/approval/service/impl/ApprovalProcessServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/approval/service/impl/ApprovalProcessServiceImpl.java @@ -56,17 +56,25 @@ public class ApprovalProcessServiceImpl implements IApprovalProcessService { @Override @Transactional(rollbackFor = Exception.class) public int insertProcess(ApprovalProcess process) { + // 检查是否已存在相同业务类型的流程 + ApprovalProcess existingProcess = processMapper.selectProcessByBusinessType(process.getBusinessType()); + if (existingProcess != null) { + throw new RuntimeException("业务类型 [" + process.getBusinessType() + "] 的审批流程已存在,流程名称:" + existingProcess.getProcessName()); + } + // 插入流程 int rows = processMapper.insertProcess(process); - - // 插入节点 - if (process.getNodeList() != null && !process.getNodeList().isEmpty()) { - for (ApprovalNode node : process.getNodeList()) { - node.setProcessId(process.getId()); + + if (rows > 0) { + // 插入节点 + if (process.getNodeList() != null && !process.getNodeList().isEmpty()) { + for (ApprovalNode node : process.getNodeList()) { + node.setProcessId(process.getId()); + } + nodeMapper.batchInsertNode(process.getNodeList()); } - nodeMapper.batchInsertNode(process.getNodeList()); } - + return rows; } @@ -75,10 +83,10 @@ public class ApprovalProcessServiceImpl implements IApprovalProcessService { public int updateProcess(ApprovalProcess process) { // 更新流程 int rows = processMapper.updateProcess(process); - + // 删除旧节点 nodeMapper.deleteNodeByProcessId(process.getId()); - + // 插入新节点 if (process.getNodeList() != null && !process.getNodeList().isEmpty()) { for (ApprovalNode node : process.getNodeList()) { @@ -86,7 +94,7 @@ public class ApprovalProcessServiceImpl implements IApprovalProcessService { } nodeMapper.batchInsertNode(process.getNodeList()); } - + return rows; } diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/approval/ApprovalProcessMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/approval/ApprovalProcessMapper.xml index 53cf3e3..3d666a9 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/approval/ApprovalProcessMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/approval/ApprovalProcessMapper.xml @@ -52,8 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into bm_approval_process + insert ignore into bm_approval_process process_code, process_name,