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,