瀏覽代碼

流程配置

24282 2 年之前
父節點
當前提交
2a9d5cbabb

+ 1 - 1
hx-flow/src/main/java/com/fjhx/flow/config/FlowBeanPostProcessor.java

@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
 import javax.annotation.Nonnull;
 
 /**
- * 利用spring后置处理器注册流程代理对象
+ * 利用spring后置处理器注册流程委托对象
  */
 @Slf4j
 @Configuration

+ 2 - 2
hx-flow/src/main/java/com/fjhx/flow/core/FlowDelegate.java

@@ -31,7 +31,7 @@ public abstract class FlowDelegate {
     public abstract String getFlowKey();
 
     /**
-     * 开始流程实现
+     * 开始流程实现方法
      *
      * @param flowId     流程id
      * @param submitData 流程入参
@@ -40,7 +40,7 @@ public abstract class FlowDelegate {
     public abstract Long start(Long flowId, JSONObject submitData);
 
     /**
-     * 结束流程实现类
+     * 默认结束流程实现方法
      *
      * @param flowId     流程id
      * @param businessId 业务id

+ 4 - 0
hx-flow/src/main/java/com/fjhx/flow/core/FlowThreadLocalUtil.java

@@ -11,6 +11,10 @@ public class FlowThreadLocalUtil {
 
     private static final ThreadLocal<FlowThreadLocalUtil> FLOW_HOLDER = new NamedThreadLocal<>("hx-flow");
 
+    private FlowThreadLocalUtil() {
+
+    }
+
     /**
      * 流程id
      */

+ 8 - 1
hx-flow/src/main/java/com/fjhx/flow/service/flow/impl/FlowDefinitionServiceImpl.java

@@ -13,6 +13,7 @@ import com.fjhx.flow.service.flow.FlowDefinitionNodeService;
 import com.fjhx.flow.service.flow.FlowDefinitionService;
 import com.fjhx.flow.service.flow.FlowInfoService;
 import com.ruoyi.common.constant.StatusConstant;
+import com.ruoyi.common.core.domain.BaseIdPo;
 import com.ruoyi.common.exception.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -80,6 +81,7 @@ public class FlowDefinitionServiceImpl extends ServiceImpl<FlowDefinitionMapper,
         flowDefinitionNodeService.saveBatch(Arrays.asList(startNode, endNode));
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void addVersion(FlowDefinitionDto dto) {
         Long flowInfoId = dto.getFlowInfoId();
@@ -128,13 +130,18 @@ public class FlowDefinitionServiceImpl extends ServiceImpl<FlowDefinitionMapper,
         }
 
         FlowDefinition flowDefinition = getById(flowDefinitionId);
-        flowDefinition.setCurrentVersion(StatusConstant.YES);
+        if (StatusConstant.YES.equals(flowDefinition.getCurrentVersion())) {
+            return;
+        }
 
         update(q -> q
                 .eq(FlowDefinition::getFlowInfoId, flowDefinition.getFlowInfoId())
                 .eq(FlowDefinition::getTenantId, flowDefinition.getTenantId())
+                .in(BaseIdPo::getId, flowDefinition.getId())
                 .set(FlowDefinition::getCurrentVersion, StatusConstant.NO)
         );
+
+        flowDefinition.setCurrentVersion(StatusConstant.YES);
         updateById(flowDefinition);
     }