home 2 vuotta sitten
vanhempi
commit
fe5d7bd1c3

+ 2 - 2
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessNodeHandleController.java

@@ -1,6 +1,6 @@
 package com.fjhx.controller.process;
 
-import com.fjhx.service.process.ProcessNodeHandleService;
+import com.fjhx.service.process.ProcessNodeButtonService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
 public class ProcessNodeHandleController {
 
     @Autowired
-    private ProcessNodeHandleService processNodeHandleService;
+    private ProcessNodeButtonService processNodeButtonService;
 
 }
 

+ 5 - 2
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessTenantController.java

@@ -1,6 +1,5 @@
 package com.fjhx.controller.process;
 
-import com.alibaba.fastjson.JSONObject;
 import com.fjhx.entity.process.ProcessTenant;
 import com.fjhx.service.process.ProcessTenantService;
 import org.springblade.core.tool.api.R;
@@ -34,7 +33,11 @@ public class ProcessTenantController {
         return R.success();
     }
 
-
+    @PostMapping("/addVersion")
+    public R addVersion(@RequestBody ProcessTenant processTenant) {
+        processTenantService.addVersion(processTenant);
+        return R.success();
+    }
 
 
 }

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeHandleMapper.java → hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeButtonMapper.java

@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author ${author}
  * @since 2022-08-12
  */
-public interface ProcessNodeHandleMapper extends BaseMapper<ProcessNodeButton> {
+public interface ProcessNodeButtonMapper extends BaseMapper<ProcessNodeButton> {
 
 }

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeHandleMapper.xml → hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeButtonMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.fjhx.mapper.process.ProcessNodeHandleMapper">
+<mapper namespace="com.fjhx.mapper.process.ProcessNodeButtonMapper">
 
 </mapper>

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessNodeHandleService.java → hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessNodeButtonService.java

@@ -11,6 +11,6 @@ import com.fjhx.entity.process.ProcessNodeButton;
  * @author ${author}
  * @since 2022-08-12
  */
-public interface ProcessNodeHandleService extends BaseService<ProcessNodeButton> {
+public interface ProcessNodeButtonService extends BaseService<ProcessNodeButton> {
 
 }

+ 1 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessNodeService.java

@@ -20,6 +20,6 @@ public interface ProcessNodeService extends BaseService<ProcessNode> {
      *
      * @param ProcessNodeList 节点列表
      */
-    void addOrEditNodeList(List<ProcessNode> ProcessNodeList);
+    void editNodeList(List<ProcessNode> ProcessNodeList);
 
 }

+ 2 - 0
hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessTenantService.java

@@ -15,4 +15,6 @@ public interface ProcessTenantService extends BaseService<ProcessTenant> {
 
     void add(ProcessTenant processTenant);
 
+    void addVersion(ProcessTenant processTenant);
+
 }

+ 1 - 22
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessInfoServiceImpl.java

@@ -90,28 +90,7 @@ public class ProcessInfoServiceImpl extends ServiceImpl<ProcessInfoMapper, Proce
 
     }
 
-    /**
-     * 获取最新版本号
-     *
-     * @param code            流程编码
-     * @param bindingTenantId 租户id
-     * @return 最新版本号
-     */
-//    private Integer getNewestVersion(String code, String bindingTenantId) {
-//        // 判断流程是否已存在
-//        ProcessInfo processInfo = getOne(Wrappers.<ProcessInfo>lambdaQuery()
-//                .eq(ProcessInfo::getCode, code)
-//                .eq(ObjectUtil.isNotEmpty(bindingTenantId), ProcessInfo::getBindingTenantId, bindingTenantId)
-//                .orderByDesc(ProcessInfo::getVersionNumber)
-//                .last("limit 1")
-//        );
-//
-//        if (processInfo == null) {
-//            return FlowConstant.DEFAULT_VERSION_NUMBER;
-//        }
-//
-//        return processInfo.getVersionNumber() + 1;
-//    }
+
 
 //        // 设为当前版本
 //        processInfo.setCurrent(StatusConstant.YES);

+ 3 - 3
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeHandleServiceImpl.java → hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeButtonServiceImpl.java

@@ -2,8 +2,8 @@ package com.fjhx.service.process.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.entity.process.ProcessNodeButton;
-import com.fjhx.mapper.process.ProcessNodeHandleMapper;
-import com.fjhx.service.process.ProcessNodeHandleService;
+import com.fjhx.mapper.process.ProcessNodeButtonMapper;
+import com.fjhx.service.process.ProcessNodeButtonService;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,6 +15,6 @@ import org.springframework.stereotype.Service;
  * @since 2022-08-12
  */
 @Service
-public class ProcessNodeHandleServiceImpl extends ServiceImpl<ProcessNodeHandleMapper, ProcessNodeButton> implements ProcessNodeHandleService {
+public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonMapper, ProcessNodeButton> implements ProcessNodeButtonService {
 
 }

+ 15 - 4
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeServiceImpl.java

@@ -11,9 +11,11 @@ import com.fjhx.enums.ProcessNodeHandleObjectTypeEnum;
 import com.fjhx.enums.ProcessNodeTypeEnum;
 import com.fjhx.mapper.process.ProcessNodeMapper;
 import com.fjhx.params.process.ProcessNodeVo;
+import com.fjhx.service.process.ProcessNodeButtonService;
 import com.fjhx.service.process.ProcessNodeService;
 import com.fjhx.utils.Assert;
 import org.springblade.core.log.exception.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -32,8 +34,10 @@ import java.util.stream.Collectors;
 @Service
 public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, ProcessNode> implements ProcessNodeService {
 
-    @Override
-    public void addOrEditNodeList(List<ProcessNode> ProcessNodeList) {
+    @Autowired
+    private ProcessNodeButtonService processNodeButtonService;
+
+    public void editNodeList(List<ProcessNode> ProcessNodeList) {
 
         // 更新节点
         updateBatchById(ProcessNodeList);
@@ -94,13 +98,18 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
         Map<Long, List<ProcessNode>> ProcessNodeGroupById = processNodeList.stream()
                 .collect(Collectors.groupingBy(ProcessNode::getId));
 
+        // 根据节点类型生成功能按钮
+        List<ProcessNodeButton> processNodeButtonList = new ArrayList<>();
+
         for (ProcessNode processNode : processNodeList) {
+
             Integer type = processNode.getType();
+
             // 获取节点类型枚举值
             ProcessNodeTypeEnum processNodeTypeEnum = ProcessNodeTypeEnum.get(type);
+
             Assert.notEmpty(processNodeTypeEnum, FlowExplainConstant.NODE_UNKNOWN);
-            // 根据节点类型生成功能按钮
-            List<ProcessNodeButton> processNodeButtonList = new ArrayList<>();
+
             switch (processNodeTypeEnum) {
 
                 case START: // 开始
@@ -127,6 +136,8 @@ public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, Proce
 
             }
         }
+
+        processNodeButtonService.saveBatch(processNodeButtonList);
     }
 
 

+ 64 - 16
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessTenantServiceImpl.java

@@ -19,6 +19,8 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
+
 /**
  * <p>
  * 租户流程表 服务实现类
@@ -36,36 +38,59 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
     @Override
     public void add(ProcessTenant processTenant) {
 
-        // 流程id
-        Long processInfoId = processTenant.getProcessInfoId();
-        Assert.notEmpty(processInfoId, FlowExplainConstant.PROCESS_INFO_ID_EMPTY);
-
-        // 流程名称
-        String name = processTenant.getName();
-        Assert.notEmpty(name, FlowExplainConstant.PROCESS_NAME);
-
-        // 租户id
-        String bindingTenantId = processTenant.getBindingTenantId();
-        if (ObjectUtil.isEmpty(bindingTenantId)) {
-            processTenant.setBindingTenantId(AuthUtil.getTenantId());
-        }
+        dataHandle(processTenant);
 
+        // 判断流程是否存在
         int count = count(Wrappers.<ProcessTenant>lambdaQuery()
                 .eq(ProcessTenant::getBindingTenantId, processTenant.getBindingTenantId())
-                .eq(ProcessTenant::getProcessInfoId, processInfoId));
-
+                .eq(ProcessTenant::getProcessInfoId, processTenant.getProcessInfoId()));
         Assert.eqZero(count, FlowExplainConstant.PROCESS_EXIST);
 
+        // 赋值默认版本号
         processTenant.setVersionNumber(FlowConstant.DEFAULT_VERSION_NUMBER);
-
         processTenant.setCurrent(StatusConstant.YES);
 
+        // 保存数据
         save(processTenant);
 
+        // 生成默认节点
         createProcess(processTenant.getId());
 
     }
 
+    @Override
+    public void addVersion(ProcessTenant processTenant) {
+
+        dataHandle(processTenant);
+
+        // 赋值版本号
+        processTenant.setVersionNumber(getNewestVersion(processTenant));
+        processTenant.setCurrent(StatusConstant.No);
+
+        // 保存数据
+        save(processTenant);
+
+        // 生成默认节点
+        createProcess(processTenant.getId());
+    }
+
+    /**
+     * 获取最新版本号
+     *
+     * @return 最新版本号
+     */
+    private Integer getNewestVersion(ProcessTenant processTenant) {
+        // 判断流程是否已存在
+        ProcessTenant one = getOne(Wrappers.<ProcessTenant>lambdaQuery()
+                .eq(ProcessTenant::getProcessInfoId, processTenant.getProcessInfoId())
+                .eq(ProcessTenant::getBindingTenantId, processTenant.getBindingTenantId())
+                .orderByDesc(ProcessTenant::getVersionNumber)
+                .last("limit 1")
+        );
+
+        return one.getVersionNumber() + 1;
+    }
+
     /**
      * 生成默认流程
      */
@@ -91,6 +116,29 @@ public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, P
         endProcessNode.setCode(FlowConstant.END_CODE);
         processNodeService.save(endProcessNode);
 
+        processNodeService.editNodeList(Arrays.asList(startProcessNode, endProcessNode));
+
+    }
+
+    /**
+     * 数据处理
+     */
+    private void dataHandle(ProcessTenant processTenant) {
+
+        // 流程id
+        Long processInfoId = processTenant.getProcessInfoId();
+        Assert.notEmpty(processInfoId, FlowExplainConstant.PROCESS_INFO_ID_EMPTY);
+
+        // 流程名称
+        String name = processTenant.getName();
+        Assert.notEmpty(name, FlowExplainConstant.PROCESS_NAME);
+
+        // 租户id
+        String bindingTenantId = processTenant.getBindingTenantId();
+        if (ObjectUtil.isEmpty(bindingTenantId)) {
+            processTenant.setBindingTenantId(AuthUtil.getTenantId());
+        }
+
     }