home 2 年之前
父節點
當前提交
ca45e67d71
共有 32 個文件被更改,包括 926 次插入0 次删除
  1. 6 0
      hx-common/pom.xml
  2. 14 0
      hx-common/service-flow/pom.xml
  3. 20 0
      hx-common/service-flow/src/main/java/com/fjhx/ServiceFlowApplication.java
  4. 56 0
      hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessInfoController.java
  5. 56 0
      hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessNodeController.java
  6. 56 0
      hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessNodeHandleController.java
  7. 16 0
      hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessInfoMapper.java
  8. 5 0
      hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessInfoMapper.xml
  9. 16 0
      hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeHandleMapper.java
  10. 5 0
      hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeHandleMapper.xml
  11. 16 0
      hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeMapper.java
  12. 5 0
      hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeMapper.xml
  13. 28 0
      hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessInfoService.java
  14. 28 0
      hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessNodeHandleService.java
  15. 28 0
      hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessNodeService.java
  16. 100 0
      hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessInfoServiceImpl.java
  17. 54 0
      hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeHandleServiceImpl.java
  18. 54 0
      hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeServiceImpl.java
  19. 13 0
      hx-common/service-flow/src/main/resources/application-dev.yml
  20. 12 0
      hx-common/service-flow/src/main/resources/application-prod.yml
  21. 11 0
      hx-common/service-flow/src/main/resources/application-test.yml
  22. 66 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessInfo.java
  23. 70 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessNode.java
  24. 44 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessNodeHandle.java
  25. 21 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/enums/ProcessInfoParallelRulesEnum.java
  26. 19 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/enums/ProcessNodeTypeEnum.java
  27. 17 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessInfoEx.java
  28. 22 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessInfoVo.java
  29. 17 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeEx.java
  30. 17 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeHandleEx.java
  31. 17 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeHandleVo.java
  32. 17 0
      hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeVo.java

+ 6 - 0
hx-common/pom.xml

@@ -122,6 +122,12 @@
                 <version>${hx.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>com.fjhx</groupId>
+                <artifactId>service-flow-api</artifactId>
+                <version>${hx.version}</version>
+            </dependency>
+
         </dependencies>
     </dependencyManagement>
 

+ 14 - 0
hx-common/service-flow/pom.xml

@@ -16,4 +16,18 @@
         <maven.compiler.target>8</maven.compiler.target>
     </properties>
 
+    <dependencies>
+
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>common-tool</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>service-flow-api</artifactId>
+        </dependency>
+
+    </dependencies>
+
 </project>

+ 20 - 0
hx-common/service-flow/src/main/java/com/fjhx/ServiceFlowApplication.java

@@ -0,0 +1,20 @@
+package com.fjhx;
+
+import org.springblade.core.cloud.feign.EnableBladeFeign;
+import org.springblade.core.launch.BladeApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+
+/**
+ * 针筒物联网管理模块启动器
+ */
+@EnableBladeFeign
+@SpringCloudApplication
+public class ServiceFlowApplication {
+
+    private static final String APP_NAME = "service-flow";
+
+    public static void main(String[] args) {
+        BladeApplication.run(APP_NAME, ServiceFlowApplication.class, args);
+    }
+
+}

+ 56 - 0
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessInfoController.java

@@ -0,0 +1,56 @@
+package com.fjhx.controller.process;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.process.ProcessInfo;
+import com.fjhx.params.process.ProcessInfoVo;
+import com.fjhx.service.process.ProcessInfoService;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@RestController
+@RequestMapping("/processInfo")
+public class ProcessInfoController {
+
+    @Autowired
+    private ProcessInfoService processInfoService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition) {
+        Page<ProcessInfo> result = processInfoService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody ProcessInfoVo processInfoVo) {
+        processInfoService.add(processInfoVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody ProcessInfoVo processInfoVo) {
+        processInfoService.edit(processInfoVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody ProcessInfoVo processInfoVo) {
+        processInfoService.delete(processInfoVo);
+        return R.success();
+    }
+
+}
+

+ 56 - 0
hx-common/service-flow/src/main/java/com/fjhx/controller/process/ProcessNodeController.java

@@ -0,0 +1,56 @@
+package com.fjhx.controller.process;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.process.ProcessNode;
+import com.fjhx.params.process.ProcessNodeVo;
+import com.fjhx.service.process.ProcessNodeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@RestController
+@RequestMapping("/processNode")
+public class ProcessNodeController {
+
+    @Autowired
+    private ProcessNodeService processNodeService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition){
+        Page<ProcessNode> result = processNodeService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody ProcessNodeVo processNodeVo){
+        processNodeService.add(processNodeVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody ProcessNodeVo processNodeVo){
+        processNodeService.edit(processNodeVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody ProcessNodeVo processNodeVo){
+        processNodeService.delete(processNodeVo);
+        return R.success();
+    }
+
+}
+

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

@@ -0,0 +1,56 @@
+package com.fjhx.controller.process;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.process.ProcessNodeHandle;
+import com.fjhx.params.process.ProcessNodeHandleVo;
+import com.fjhx.service.process.ProcessNodeHandleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@RestController
+@RequestMapping("/processNodeHandle")
+public class ProcessNodeHandleController {
+
+    @Autowired
+    private ProcessNodeHandleService processNodeHandleService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition){
+        Page<ProcessNodeHandle> result = processNodeHandleService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody ProcessNodeHandleVo processNodeHandleVo){
+        processNodeHandleService.add(processNodeHandleVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody ProcessNodeHandleVo processNodeHandleVo){
+        processNodeHandleService.edit(processNodeHandleVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody ProcessNodeHandleVo processNodeHandleVo){
+        processNodeHandleService.delete(processNodeHandleVo);
+        return R.success();
+    }
+
+}
+

+ 16 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessInfoMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.process;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.entity.process.ProcessInfo;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+public interface ProcessInfoMapper extends BaseMapper<ProcessInfo> {
+
+}

+ 5 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessInfoMapper.xml

@@ -0,0 +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.ProcessInfoMapper">
+
+</mapper>

+ 16 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeHandleMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.process;
+
+import com.fjhx.entity.process.ProcessNodeHandle;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+public interface ProcessNodeHandleMapper extends BaseMapper<ProcessNodeHandle> {
+
+}

+ 5 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeHandleMapper.xml

@@ -0,0 +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>

+ 16 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.process;
+
+import com.fjhx.entity.process.ProcessNode;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+public interface ProcessNodeMapper extends BaseMapper<ProcessNode> {
+
+}

+ 5 - 0
hx-common/service-flow/src/main/java/com/fjhx/mapper/process/ProcessNodeMapper.xml

@@ -0,0 +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.ProcessNodeMapper">
+
+</mapper>

+ 28 - 0
hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessInfoService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.process;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.BaseService;
+import com.fjhx.entity.process.ProcessInfo;
+import com.fjhx.params.process.ProcessInfoVo;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+public interface ProcessInfoService extends BaseService<ProcessInfo> {
+
+    Page<ProcessInfo> getPage(Map<String, String> condition);
+
+    void add(ProcessInfoVo processInfoVo);
+
+    void edit(ProcessInfoVo processInfoVo);
+
+    void delete(ProcessInfoVo processInfoVo);
+
+}

+ 28 - 0
hx-common/service-flow/src/main/java/com/fjhx/service/process/ProcessNodeHandleService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.process;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.process.ProcessNodeHandle;
+import com.fjhx.params.process.ProcessNodeHandleVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+public interface ProcessNodeHandleService extends BaseService<ProcessNodeHandle> {
+
+    Page<ProcessNodeHandle> getPage(Map<String, String> condition);
+
+    void add(ProcessNodeHandleVo processNodeHandleVo);
+
+    void edit(ProcessNodeHandleVo processNodeHandleVo);
+
+    void delete(ProcessNodeHandleVo processNodeHandleVo);
+
+}

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

@@ -0,0 +1,28 @@
+package com.fjhx.service.process;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.process.ProcessNode;
+import com.fjhx.params.process.ProcessNodeVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+public interface ProcessNodeService extends BaseService<ProcessNode> {
+
+    Page<ProcessNode> getPage(Map<String, String> condition);
+
+    void add(ProcessNodeVo processNodeVo);
+
+    void edit(ProcessNodeVo processNodeVo);
+
+    void delete(ProcessNodeVo processNodeVo);
+
+}

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

@@ -0,0 +1,100 @@
+package com.fjhx.service.process.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.constants.StatusConstant;
+import com.fjhx.entity.process.ProcessInfo;
+import com.fjhx.mapper.process.ProcessInfoMapper;
+import com.fjhx.params.process.ProcessInfoVo;
+import com.fjhx.service.process.ProcessInfoService;
+import com.fjhx.utils.Assert;
+import com.fjhx.utils.WrapperUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Service
+public class ProcessInfoServiceImpl extends ServiceImpl<ProcessInfoMapper, ProcessInfo> implements ProcessInfoService {
+
+    @Override
+    public Page<ProcessInfo> getPage(Map<String, String> condition) {
+
+        QueryWrapper<ProcessInfo> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<ProcessInfo> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(ProcessInfoVo processInfoVo) {
+        // 编码
+        String code = processInfoVo.getCode();
+        Assert.notEmpty(code, "流程编码不能为空");
+
+        // 绑定租户id
+        String bindingTenantId = processInfoVo.getBindingTenantId();
+
+        // 最新版本号
+        Integer newestVersion = getNewestVersion(code, bindingTenantId);
+
+        // 如果最新版本号为1,赋值为当前版本
+        if (newestVersion == 1) {
+            processInfoVo.setCurrentVersion(StatusConstant.YES);
+        }
+
+        save(processInfoVo);
+
+
+
+    }
+
+    @Override
+    public void edit(ProcessInfoVo processInfoVo) {
+        updateById(processInfoVo);
+    }
+
+    @Override
+    public void delete(ProcessInfoVo processInfoVo) {
+        removeById(processInfoVo.getId());
+    }
+
+    /**
+     * 获取最新版本号
+     *
+     * @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::getParallelVersion)
+                .last("limit 1")
+        );
+
+        if (processInfo == null) {
+            return 1;
+        }
+
+        return processInfo.getParallelVersion() + 1;
+    }
+
+}

+ 54 - 0
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeHandleServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.service.process.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.process.ProcessNodeHandle;
+import com.fjhx.params.process.ProcessNodeHandleVo;
+import com.fjhx.mapper.process.ProcessNodeHandleMapper;
+import com.fjhx.service.process.ProcessNodeHandleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Service
+public class ProcessNodeHandleServiceImpl extends ServiceImpl<ProcessNodeHandleMapper, ProcessNodeHandle> implements ProcessNodeHandleService {
+
+    @Override
+    public Page<ProcessNodeHandle> getPage(Map<String, String> condition) {
+
+        QueryWrapper<ProcessNodeHandle> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<ProcessNodeHandle> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(ProcessNodeHandleVo processNodeHandleVo) {
+        save(processNodeHandleVo);
+    }
+
+    @Override
+    public void edit(ProcessNodeHandleVo processNodeHandleVo) {
+        updateById(processNodeHandleVo);
+    }
+
+    @Override
+    public void delete(ProcessNodeHandleVo processNodeHandleVo) {
+        removeById(processNodeHandleVo.getId());
+    }
+
+}

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

@@ -0,0 +1,54 @@
+package com.fjhx.service.process.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.process.ProcessNode;
+import com.fjhx.params.process.ProcessNodeVo;
+import com.fjhx.mapper.process.ProcessNodeMapper;
+import com.fjhx.service.process.ProcessNodeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Service
+public class ProcessNodeServiceImpl extends ServiceImpl<ProcessNodeMapper, ProcessNode> implements ProcessNodeService {
+
+    @Override
+    public Page<ProcessNode> getPage(Map<String, String> condition) {
+
+        QueryWrapper<ProcessNode> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<ProcessNode> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(ProcessNodeVo processNodeVo) {
+        save(processNodeVo);
+    }
+
+    @Override
+    public void edit(ProcessNodeVo processNodeVo) {
+        updateById(processNodeVo);
+    }
+
+    @Override
+    public void delete(ProcessNodeVo processNodeVo) {
+        removeById(processNodeVo.getId());
+    }
+
+}

+ 13 - 0
hx-common/service-flow/src/main/resources/application-dev.yml

@@ -0,0 +1,13 @@
+# 服务器端口
+server:
+  port: 8201
+logging:
+  level:
+    org.springframework.data.mongodb.core: DEBUG
+# 数据源配置
+spring:
+  # 数据库
+  datasource:
+    url: ${blade.datasource.syringe_production.dev.url}
+    username: ${blade.datasource.syringe_production.dev.username}
+    password: ${blade.datasource.syringe_production.dev.password}

+ 12 - 0
hx-common/service-flow/src/main/resources/application-prod.yml

@@ -0,0 +1,12 @@
+# 服务器端口
+server:
+  port: 8201
+
+# 数据源配置
+spring:
+  # 数据库
+  datasource:
+    url: ${blade.datasource.syringe_production.prod.url}
+    username: ${blade.datasource.syringe_production.prod.username}
+    password: ${blade.datasource.syringe_production.prod.password}
+

+ 11 - 0
hx-common/service-flow/src/main/resources/application-test.yml

@@ -0,0 +1,11 @@
+# 服务器端口
+server:
+  port: 8201
+
+# 数据源配置
+spring:
+  # 数据库
+  datasource:
+    url: ${blade.datasource.syringe_production.test.url}
+    username: ${blade.datasource.syringe_production.test.username}
+    password: ${blade.datasource.syringe_production.test.password}

+ 66 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessInfo.java

@@ -0,0 +1,66 @@
+package com.fjhx.entity.process;
+
+import com.fjhx.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessInfo extends BaseEntity {
+
+
+    /**
+     * 流程名称
+     */
+    private String name;
+
+    /**
+     * 流程编码
+     */
+    private String code;
+
+    /**
+     * 服务名称
+     */
+    private String serviceName;
+
+    /**
+     * 模块名称
+     */
+    private String moduleName;
+
+    /**
+     * 并行规则 0无规则 1禁止业务重复提交 2禁止用户重复提交 3角色重复提交 4禁止部门重复提交 5禁止岗位重复提交
+     */
+    private Integer parallelRules;
+
+    /**
+     * 禁止并行提示
+     */
+    private String parallelProhibitTips;
+
+    /**
+     * 版本号
+     */
+    private Integer parallelVersion;
+
+    /**
+     * 是否当前版本
+     */
+    private Integer currentVersion;
+
+    /**
+     * 绑定租户id 存在租户id,租户专属流程,不存在则为通用流程
+     */
+    private String bindingTenantId;
+
+
+}

+ 70 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessNode.java

@@ -0,0 +1,70 @@
+package com.fjhx.entity.process;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fjhx.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessNode extends BaseEntity {
+
+
+    /**
+     * 类型 1开始 2流转 3结束
+     */
+    private Integer type;
+
+    /**
+     * 流程id
+     */
+    private Long processInfoId;
+
+    /**
+     * 父节点id
+     */
+    private Long parentId;
+
+    /**
+     * 流程节点名称
+     */
+    private String name;
+
+    /**
+     * 流程节点编码
+     */
+    private String code;
+
+    /**
+     * 处理人类型
+     */
+    private Integer handleType;
+
+    /**
+     * 指定类型id集合
+     */
+    private String handleTypeIdSet;
+
+    /**
+     * 通过规则 1 n人同意
+     */
+    private Integer passRule;
+
+    /**
+     * 通过数值 (n/人)
+     */
+    private BigDecimal passValue;
+
+
+}

+ 44 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/entity/process/ProcessNodeHandle.java

@@ -0,0 +1,44 @@
+package com.fjhx.entity.process;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fjhx.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessNodeHandle extends BaseEntity {
+
+
+    /**
+     * 流程id
+     */
+    private Long processInfoId;
+
+    /**
+     * 流程节点id
+     */
+    private Long processNodeId;
+
+    /**
+     * 处理类型
+     */
+    private Integer type;
+
+    /**
+     * 通知模板
+     */
+    private String notice;
+
+
+}

+ 21 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/enums/ProcessInfoParallelRulesEnum.java

@@ -0,0 +1,21 @@
+package com.fjhx.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum ProcessInfoParallelRulesEnum {
+
+    no(0), // 无规则
+    business(1), // 业务禁止并行
+    user(2), // 用户禁止并行
+    role(3), // 角色禁止并行
+    dept(4), // 部门禁止并行
+    ;
+
+    private final Integer type;
+
+    ProcessInfoParallelRulesEnum(Integer type) {
+        this.type = type;
+    }
+
+}

+ 19 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/enums/ProcessNodeTypeEnum.java

@@ -0,0 +1,19 @@
+package com.fjhx.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum ProcessNodeTypeEnum {
+
+    start(1), // 开始
+    roam(2), // 流转
+    end(3) // 结束
+    ;
+
+    private final Integer type;
+
+    ProcessNodeTypeEnum(Integer type) {
+        this.type = type;
+    }
+
+}

+ 17 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessInfoEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.process;
+
+import com.fjhx.entity.process.ProcessInfo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessInfoEx extends ProcessInfo {
+
+}

+ 22 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessInfoVo.java

@@ -0,0 +1,22 @@
+package com.fjhx.params.process;
+
+import com.fjhx.entity.process.ProcessInfo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessInfoVo extends ProcessInfo {
+
+    /**
+     * 是否租户定制流程
+     * 1 是
+     * 0 否(公共流程)
+     */
+    private Integer customized;
+
+}

+ 17 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.process;
+
+import com.fjhx.entity.process.ProcessNode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessNodeEx extends ProcessNode {
+
+}

+ 17 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeHandleEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.process;
+
+import com.fjhx.entity.process.ProcessNodeHandle;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessNodeHandleEx extends ProcessNodeHandle {
+
+}

+ 17 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeHandleVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.process;
+
+import com.fjhx.entity.process.ProcessNodeHandle;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessNodeHandleVo extends ProcessNodeHandle {
+
+}

+ 17 - 0
hx-service-api/service-flow-api/src/main/java/com/fjhx/params/process/ProcessNodeVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.process;
+
+import com.fjhx.entity.process.ProcessNode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ *
+ * @author ${author}
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProcessNodeVo extends ProcessNode {
+
+}